<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>Docker中文</title><link>https://www.docker.top/</link><description>docker.top</description><item><title>Docker 最新动态观察：容器平台正在向 AI Runtime 与开发治理平台演进</title><link>https://www.docker.top/?id=458</link><description>&lt;section style=&quot;text-align: center; font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;0&quot;&gt;&lt;section style=&quot;line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240938307343276.png&quot; alt=&quot;562cd8b0ba1446e99e3e56aff28f3519.png&quot; width=&quot;839&quot; height=&quot;528&quot; style=&quot;width: 839px; height: 528px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;1&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;截至 2026 年 6 月，Docker 的产品路线已经出现明显变化。相比过去围绕容器构建、分发与本地开发体验的传统叙事，Docker 近期更强调三个方向：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;2&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px;&quot;&gt;1. AI Agent 的运行时安全治理&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 data-layout-id=&quot;3&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px;&quot;&gt;2. &lt;span class=&quot;&quot; link-id=&quot;link-1782265064982-0.5968309226339632&quot;&gt;软件供应链&lt;/span&gt;与基础镜像可信能力&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 data-layout-id=&quot;4&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px;&quot;&gt;3. 本地开发环境的可审计与可控性&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;5&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这意味着 Docker 正在从“容器工具链”向“面向 AI 开发时代的运行平台”演进。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;6&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;一、Docker Desktop 4.77.0 发布，持续强化开发环境控制面&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;7&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 6 月 8 日，Docker Desktop 4.77.0 发布。更新点包括：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Logs 视图支持日志导出&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span class=&quot;&quot; link-id=&quot;link-1782265064983-0.19922921227378865&quot;&gt;Docker Engine&lt;/span&gt; 升级至 v29.5.3&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Buildx 升级至 v0.34.1&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker Agent、Docker MCP Gateway、containerd 等组件同步更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Marketplace 扩展采用固定 manifest digest 进行安装与更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;13&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这些变更说明 Docker 正在持续补强 Desktop 作为“开发控制平面”的属性，而不仅仅是容器运行器。尤其是扩展安装链路的可验证性提升，反映出 Docker 对开发者工作站供应链风险的持续重视。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;14&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;二、Docker AI Governance 说明 Docker 已将 Agent 安全作为核心命题&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;15&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 5 月，Docker 推出 Docker AI Governance。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;16&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该能力的核心背景在于：&lt;span class=&quot;&quot; link-id=&quot;link-1782265064983-0.8694334576614706&quot;&gt;AI Agent&lt;/span&gt; 已从代码补全工具，逐步演变为具备执行能力的任务代理。它们可以读写文件、访问网络、调用本地 shell、连接 MCP 工具，甚至接触企业内部凭据。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;17&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在这一前提下，开发者终端不再只是个人工作设备，而成为高权限执行环境。Docker AI Governance 试图围绕以下四个维度建立约束：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;网络访问策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;文件系统挂载与读写范围限制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;凭据暴露面控制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span class=&quot;&quot; link-id=&quot;link-1782265065115-0.44446749815590647&quot;&gt;MCP Server&lt;/span&gt; 与工具调用治理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;22&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这意味着 Docker 试图在容器、开发环境与 AI Agent 之间，建立统一的运行时权限边界。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;23&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;三、&lt;span class=&quot;&quot; link-id=&quot;link-1782265065158-0.6764663469350465&quot;&gt;Docker Sandboxes&lt;/span&gt; 的重点不是便利，而是失误隔离&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;24&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker 近期也持续强调 Sandboxes 的现实价值，尤其是在 AI 编程助手误执行危险命令的场景下。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;25&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;典型案例是 Agent 误执行 `rm -rf ~/`，直接删除用户主目录。该案例揭示的问题是：当 Agent 具备真实执行权限时，错误将不再停留在“代码质量”层面，而可能直接上升为“本地环境破坏”。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;26&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker Sandboxes 的价值在于：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;将 Agent 执行环境与宿主机隔离&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;限制其可访问目录、网络与工具边界&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在默认假设模型会犯错的前提下，以工程隔离替代主观信任&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;30&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这套思路与传统生产环境安全设计一致，本质上是把最小权限原则引入 AI 开发工作流。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;31&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;四、Docker Hardened Images 持续补强企业供应链安全能力&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;32&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 6 月 11 日，Docker 宣布 Docker Hardened Images 与 Aikido 的漏洞扫描集成增强，重点是支持 VEX 信息。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;33&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;VEX 的意义在于，可以区分“存在于 SBOM 中”与“真实可利用”的漏洞，从而降低大量误报对企业安全团队的干扰。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;34&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这说明 Docker Hardened Images 的价值不只在于镜像瘦身，更在于：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;降低基础镜像攻击面&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;提供更可信的镜像来源&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;通过 SBOM、VEX 等元数据增强漏洞判断精度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;改善企业在 DevSecOps 流程中的风险优先级决策&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;39&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;对企业用户而言，这比单纯的镜像体积优化更有实际意义。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;40&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;五、Copy Fail 漏洞再次提醒：容器安全仍以宿主机安全为基础&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;41&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 5 月 27 日，Docker 针对 Linux 内核漏洞 CVE-2026-31431（Copy Fail）发布缓解建议。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;42&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker 的建议包括：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;升级 Docker Engine 至 v29.4.3 或更高版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;优先应用宿主机内核补丁&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在发行版尚未发布修复时，先通过 Engine 升级降低风险暴露&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;46&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这一事件再次证明：容器隔离能力并非脱离宿主机内核独立存在。Docker 安全能力的上限，仍然受 Linux 内核与相关安全机制约束。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;47&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;48&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;从近期动作来看，Docker 的定位正在发生明显变化。其产品叙事已经从“容器化工具链”逐步延伸到以下几个层面：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;AI Agent Runtime&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;本地开发环境治理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;MCP 工具权限控制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;软件供应链与可信镜像&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;企业级研发安全平台&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;54&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;因此，Docker 的下一阶段竞争力，未必只体现在容器技术本身，而更可能体现在它能否成为企业接入 AI 编程与自动化研发流程时的标准运行底座。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;55&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;资料来源：&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;56&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker Desktop 4.77.0 Release Notes&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;57&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://docs.docker.com/desktop/release-notes/&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;58&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker AI Governance&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;59&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://www.docker.com/blog/docker-ai-governance-unlock-agent-autonomy-safely/&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;60&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker Hardened Images + Aikido&lt;/span&gt;&lt;/span&gt;https://www.docker.com/blog/docker-hardened-images-enhanced-vulnerability-scanning-with-docker-and-aikido/&lt;/section&gt;&lt;section data-layout-id=&quot;62&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker Sandboxes and AI Agent Incident&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;63&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://www.docker.com/blog/coding-agent-horror-stories-the-rm-rf-incident/&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;64&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;CVE-2026-31431 Copy Fail Mitigation&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;65&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://www.docker.com/blog/mitigating-cve-2026-31431-copy-fail-in-docker-engine/&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;text-align: center; font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;67&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #2B77BF;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section style=&quot;text-align: center; font-size: 17px; line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;69&quot;&gt;&lt;section style=&quot;color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240939269554622.png&quot; alt=&quot;9f00343919e7f44af2981706003985d3.png&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 17 Jun 2026 09:37:46 +0800</pubDate></item><item><title>Docker最新技术观察：漏洞数据库变动，正在影响容器安全治理</title><link>https://www.docker.top/?id=459</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240941209138325.png&quot; alt=&quot;6004d42191e6c555ae7afd46fbcf507c.png&quot; width=&quot;884&quot; height=&quot;411&quot; style=&quot;width: 884px; height: 411px;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最近，Docker 官方发布了一篇面向容器安全团队的技术文章，讨论了一个看起来不像“功能更新”、但实际影响可能不小的话题：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;NIST 正在调整 NVD（National Vulnerability Database，国家漏洞数据库）的补充信息策略，容器安全体系需要重新评估。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于长期依赖 CVSS、&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265220077-0.23550491911838511&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;CPE&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、CWE 等字段来做漏洞筛选、风险排序和合规检查的团队来说，这不是一次普通的数据源变化，更像是一次方法论提醒：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;未来的容器安全，不能只依赖“漏洞数据是否完整”，而要更多回到运行时风险、镜像上下文和实际可利用性本身。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对关注 Docker、Kubernetes、软件供应链安全和&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265220078-0.36670776428158014&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;DevSecOps&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的同学来说，这篇文章值得认真看一遍。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发生了什么？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根据 Docker 官方文章介绍，2026 年 4 月 15 日，NIST 宣布对 NVD 采用新的优先级补充模式。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;简单来说：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大多数 CVE 仍会继续发布。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但并不是所有漏洞都会像过去那样持续附带完整的补充信息。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;包括很多团队常用的 CVSS 评分、CPE 映射、CWE 分类，未来覆盖可能不再像过去那样稳定。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这意味着，很多基于这些字段构建起来的自动化安全流程，可能都会受到影响。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你的漏洞扫描、准入规则、告警排序、合规报表，严重依赖 NVD 的这些结构化字段，那么现在就该重新检查你的流程设计了。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;为什么这件事会影响容器安全？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多团队做镜像漏洞治理时，表面上是在“扫镜像”，但实际上依赖的是一整套漏洞元数据解释系统。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见流程大致是这样的：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扫描镜像中的软件包和依赖组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将结果映射到 CVE。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;再利用 CVSS、CPE、CWE 等字段做分级、归因和规则判断。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最终输出告警、阻断策略、修复优先级或审计结果。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这套方法过去几年几乎成了默认做法。问题在于，它有一个很强的前提：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;外部漏洞数据源要足够完整、足够标准、足够持续。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;而这次 NVD 的变化，恰恰说明这个前提并不总是成立。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;尤其在容器场景里，漏洞管理本来就不只是“有没有这个 CVE”这么简单，还包括：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个组件是否真的会在运行时被使用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个漏洞是否处于可达路径上。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个问题对当前镜像构建方式是否真正有影响。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个风险和基础镜像、应用层、运行配置之间是什么关系。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果过度依赖 NVD 补充字段，团队就很容易把“数据完整”误当成“风险判断准确”。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 这篇文章释放了哪些信号？&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1. 漏洞治理不能再只靠 CVSS 分数驱动&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多团队习惯把 CVSS 分数作为修复优先级的主要依据，高分先修、低分靠后，流程上简单直接。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但在容器环境里，这种做法本来就有局限。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个高分漏洞，如果对应组件并不在实际运行路径中，风险未必真的高；反过来，一个分数不算最高的问题，如果正好处在关键暴露面，影响可能更直接。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这次 Docker 官方文章传递出的一个重要信号就是：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;安全团队需要减少对单一评分体系的机械依赖，转而更多结合运行上下文和可利用性来判断风险。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2. CPE 映射不稳定后，很多老式扫描逻辑会更脆弱&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多扫描工具和内部规则引擎，会基于 CPE 做匹配、归类和关联分析。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但如果这类补充数据今后不再稳定，那么很多依赖固定字段的逻辑都可能出现：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;漏扫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;误报。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分级不一致。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;历史趋势失真。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这对依赖自动化报表、准入门禁和合规流水线的团队来说，影响并不小。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3. 容器安全的重点，正在从“发现更多漏洞”转向“更准确理解风险”&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这几年大家已经逐渐意识到，漏洞扫描里的“噪音”问题越来越严重。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像越复杂、依赖越多，扫描结果越容易失控。很多团队其实并不缺告警，缺的是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;能支撑决策的高质量判断&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从这个角度看，NVD 的变化虽然会带来短期不适，但也可能倒逼整个行业往更务实的方向走：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;少一点字段依赖，多一点上下文分析。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对 Docker / Kubernetes 团队意味着什么？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你所在团队正在维护容器平台、Kubernetes 集群或者镜像供应链，建议重点检查以下几个方面。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一是检查你的漏洞处理流程，是否过度依赖 NVD 补充字段&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你的分级规则、阻断条件、例外审批、合规证明严重依赖 CVSS、CPE、CWE 的完整性，那就需要尽快评估替代方案或补充判断机制。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二是重新审视“镜像安全”到底在解决什么问题&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多时候，团队陷入的是“漏洞数量治理”，而不是“真实风险治理”。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果指标只剩下“高危多少个、严重多少个”，却没有结合镜像用途、服务暴露面、运行权限和依赖上下文，那么治理质量其实并不高。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三是把镜像上下文和运行时视角纳入判断链路&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全不应该只停留在静态包扫描，还应该结合：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像构成。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实际运行组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可达攻击面。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;构建来源可信度。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修复路径是否可执行。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于 Kubernetes 场景尤其如此，因为很多问题并不是“镜像里有漏洞”本身，而是“漏洞出现在什么样的工作负载里”。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;写在最后&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对 Docker 和 Kubernetes 社区来说，这篇 Docker 官方文章的价值，不在于给出一个立刻可套用的工具答案，而在于指出了一个必须正视的趋势：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;当漏洞数据库的补充信息不再像过去那样稳定时，安全团队需要升级自己的判断方法。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你的团队今天还主要依赖“扫出多少 CVE、按多少分处理、报多少高危”来管理容器风险，那么现在可能正是一个重新校准方法的时候。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;你怎么看这次 NVD 补充策略变化？在你的团队里，漏洞治理更依赖评分，还是更依赖运行上下文判断？欢迎留言交流。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参考来源：Docker 官方博客《NIST Narrows the NVD: What Container Security Programs Should Reassess》&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发布日期：2026 年 5 月 13 日&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;官网：https://www.docker.com/blog/&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240942189740685.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; title=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;677&quot; height=&quot;228&quot; style=&quot;width: 677px; height: 228px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;</description><pubDate>Fri, 05 Jun 2026 09:40:06 +0800</pubDate></item><item><title>建议收藏：Kubernetes 生产环境 10 大高频故障排查实战</title><link>https://www.docker.top/?id=460</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240949199515583.png&quot; alt=&quot;image.png&quot; width=&quot;793&quot; height=&quot;396&quot; style=&quot;width: 793px; height: 396px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Kubernetes 在测试环境里，往往表现得很稳定；可一旦进入生产环境，随着业务规模扩大、应用数量增多、节点运行时间拉长，各种问题就会陆续冒出来。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有些故障表面看只是一个&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265597747-0.06493791906759783&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;Pod&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;起不来，背后却可能牵涉到调度器、容器运行时、网络、存储、DNS，甚至控制面本身。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;如果没有一套稳定的排查思路，遇到问题时就很容易陷入“到处看日志、四处改配置、越改越乱”的状态。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;其实，大多数 Kubernetes 问题都有比较固定的定位路径：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 16px; padding: 0px 1em; outline: 0px; border-left: 0.25em solid rgb(234, 236, 239); color: rgb(106, 115, 125); font-size: 16.25px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; -webkit-font-smoothing: antialiased; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;先看状态，再看 Events；先缩小范围，再查日志；最后再回到配置本身。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文结合生产环境中的典型案例，整理出 10 个最常见的 Kubernetes 高频故障场景，覆盖：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Pod Pending&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;CrashLoopBackOff&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Service 无法访问&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;镜像拉取失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Node NotReady&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;存储卷挂载异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;资源限制与驱逐&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;etcd 故障&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;DNS 解析异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;权限与安全上下文问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;如果你平时负责 Kubernetes 集群运维，这篇文章建议直接收藏，关键时刻真能省不少时间。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、先记住一条通用排障思路&lt;/span&gt;&lt;/h1&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;很多人排查 Kubernetes 故障时，上来就改 YAML，或者只盯着 Pod 状态不放。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;实际上，更高效的顺序应该是：&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）先看对象状态&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先搞清楚出问题的是谁：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 不通&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;控制面异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用命令：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get svc -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）再看 describe 和 Events&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;绝大多数常见问题，都会在事件里留下线索。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;尤其是调度失败、挂载失败、探针失败、镜像拉取失败，先看 Events 往往比先翻日志更高效。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc -n &amp;lt;namespace&amp;gt; &amp;lt;pvc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）再看相关组件日志&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果事件只能告诉你“失败了”，但原因仍然不够清楚，就继续下钻到组件：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubelet&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;containerd&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kube-proxy&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CSI&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）最后回到配置本身&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等故障范围缩小以后，再去核对：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标签和选择器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像地址&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;探针&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全上下文&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;网络策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这套方法很朴素，但真正在生产环境里非常有效。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、问题 1：Pod 一直处于 Pending 状态&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 创建后长时间停留在 Pending，始终没有进入 Running。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见场景&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;新部署的应用起不来&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扩容后副本仍调度失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;集群资源紧张时无法重新调度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pending 往往表示 Pod 还没有进入正常运行阶段。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最常见的原因主要有三类：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度器找不到可用节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 被污点、亲和性或资源约束挡住了&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC 未成功绑定，导致 Pod 无法继续推进&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先看 Pod 详情&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点看 Events。例如：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Warning &amp;nbsp;FailedScheduling &amp;nbsp;default-scheduler &amp;nbsp;0/5 nodes are available: 1 Insufficient cpu, 3 node(s) had taints that the pod didn&amp;#39;t tolerate.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;再看节点资源&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{range .items[*]}{.metadata.name}{&amp;quot;\t&amp;quot;}{.status.allocatable.cpu}{&amp;quot; CPU\t&amp;quot;}{.status.allocatable.memory}{&amp;quot;\t&amp;quot;}{.status.conditions[?(@.type==&amp;quot;Ready&amp;quot;)].status}{&amp;quot;\n&amp;quot;}{end}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点关注 Allocatable，不要只看机器总资源。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查污点&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get node -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 PVC 状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc -n &amp;lt;namespace&amp;gt; &amp;lt;pvc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）资源不足&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见报错：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Insufficient cpu&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Insufficient memory&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理方式：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扩容节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 Pod 的 requests&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优化资源占用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理低优先级工作负载&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;128Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;100m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;256Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;200m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）节点污点限制&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;临时处理可以移除污点：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint node &amp;lt;node-name&amp;gt; key=value:NoSchedule-&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更稳妥的方式是在 Pod 里增加容忍：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #990073;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;key&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Exists&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;NoSchedule&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）PVC 绑定失败&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点检查：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StorageClass 是否存在&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PV / PVC 是否匹配&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CSI 驱动是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储后端是否可达&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -w&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;移除节点污点会改变整个节点的调度行为，操作前先确认该节点是否承担专用角色。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、问题 2：Pod 一直处于 CrashLoopBackOff 状态&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 能调度到节点，但容器启动后很快退出，并反复重启。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见场景&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;新版本上线后立即崩溃&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;依赖服务未就绪导致应用退出&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;健康检查过严，容器还没启动完就被杀掉&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CrashLoopBackOff 的核心不是“起不来”，而是：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 16px; padding: 0px 1em; outline: 0px; border-left: 0.25em solid rgb(234, 236, 239); color: rgb(106, 115, 125); font-size: 16.25px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; -webkit-font-smoothing: antialiased; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器启动了，但启动后很快崩了。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点看这 5 个方向：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;退出码&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;崩溃前日志&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动命令&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;外部依赖&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;健康检查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看退出信息&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.status.containerStatuses[*]}{&amp;quot;\n&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 20&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Last State&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看上一次崩溃日志&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; --previous&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看启动命令和环境变量&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].command}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].args}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].env}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看探针配置&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Liveness&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Readiness&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Startup&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试依赖连通性&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- nc -zv &amp;lt;service-name&amp;gt; 3306&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- nslookup &amp;lt;service-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）启动命令错误&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;/bin/sh&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;-c&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;node app.js &amp;amp;&amp;amp; sleep infinity&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）依赖服务不可达&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据库、Redis、MQ 等依赖异常时，应用常常直接退出。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265597748-0.24476311720581356&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;ConfigMap&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/ Secret 缺失&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get configmap -n &amp;lt;namespace&amp;gt; &amp;lt;configmap-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret -n &amp;lt;namespace&amp;gt; &amp;lt;secret-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）目录权限不足&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- ls -la /data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5）探针过早失败&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更合理的做法是给启动较慢的应用配置 startupProbe：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;startupProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -w&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- ps aux&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;回滚方案&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout undo deployment &amp;lt;deployment-name&amp;gt; -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout status deployment &amp;lt;deployment-name&amp;gt; -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、问题 3：Pod 无法通过 Service 访问&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 之间通过 Service 名称访问失败，curl 超时，或者 Ingress 流量无法转发到后端。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 通信链路通常可以拆成三层：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS 解析&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 到后端的转发&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端 Pod 端口监听&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认对象存在&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get svc -n &amp;lt;namespace&amp;gt; &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从其他 Pod 发起访问测试&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;source-pod&amp;gt; -- curl -v http://&amp;lt;svc-name&amp;gt;:&amp;lt;port&amp;gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 Endpoints 和 EndpointSlice&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get endpoints -n &amp;lt;namespace&amp;gt; &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get endpointslice -n &amp;lt;namespace&amp;gt; -l kubernetes.io/service-name=&amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe svc -n &amp;lt;namespace&amp;gt; &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果 Endpoints 为空，说明 Service 没匹配到后端。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 kube-proxy&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n kube-system -l k8s-app=kube-proxy -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system &amp;lt;kube-proxy-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试 ClusterIP&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;source-pod&amp;gt; -- curl -v http://&amp;lt;cluster-ip&amp;gt;:&amp;lt;port&amp;gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;必要时到节点侧看规则&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录节点执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;iptables -t nat -L -n | grep &amp;lt;cluster-ip&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ipvsadm -Ln&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）selector 不匹配&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; --show-labels&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）Pod 没 Ready&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 默认不会把未 Ready 的 Pod 加进后端。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）kube-proxy 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pod -n kube-system -l k8s-app=kube-proxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）DNS 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- nslookup &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- cat /etc/resolv.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5）NetworkPolicy 阻断&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get networkpolicy -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe networkpolicy -n &amp;lt;namespace&amp;gt; &amp;lt;policy-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重启 kube-proxy 和修改 NetworkPolicy 都可能影响业务流量，生产环境必须分批观察。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、问题 4：镜像拉取失败&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 调度成功，但镜像下载失败，状态显示 ImagePullBackOff 或 ErrImagePull。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这类问题通常集中在 4 个方向：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像地址写错&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tag 不存在&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;认证失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点到仓库网络或 TLS 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看事件&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 15&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Events&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点侧手动拉取测试&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;crictl pull &amp;lt;registry&amp;gt;/&amp;lt;image&amp;gt;:&amp;lt;tag&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ctr -n k8s.io images pull &amp;lt;registry&amp;gt;/&amp;lt;image&amp;gt;:&amp;lt;tag&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查镜像仓库认证&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe secret -n &amp;lt;namespace&amp;gt; &amp;lt;registry-secret-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查仓库网络与证书&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -I https://&amp;lt;registry&amp;gt;/v2/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）镜像地址或 tag 错误&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最常见，也最容易忽略。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）认证凭据错误&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create secret docker-registry &amp;lt;secret-name&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-server=&amp;lt;registry&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-username=&amp;lt;user&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-password=&amp;lt;password&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-email=&amp;lt;email&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 里引用：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;imagePullSecrets:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #990073;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;lt;secret-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）TLS 证书不被信任&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;私有仓库常见问题是内部 CA 没有安装到节点信任链里。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）节点网络不通&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;例如 DNS 不通、防火墙阻断、代理配置缺失。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -n &amp;lt;namespace&amp;gt; --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除 Pod 前先确认副本数是否足够，避免直接影响线上流量。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、问题 5：Node 变成 NotReady&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点状态显示 NotReady，新 Pod 无法继续调度到该节点。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优先排查这 4 个方向：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubelet 是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;containerd 是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统资源是否耗尽&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点与 API Server 是否连通&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看节点状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get node &amp;lt;node-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.status.conditions[*]}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录节点检查 kubelet&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status kubelet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u kubelet -n 100 --no-pager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查系统资源&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;top -bn1 | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 containerd&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status containerd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查与 API Server 连通性&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ping &amp;lt;api-server-ip&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -k https://&amp;lt;api-server-ip&amp;gt;:6443/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 kubelet 证书&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; font-weight: bold; overflow-wrap: break-word !important;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/lib/kubelet/pki/kubelet-client-current.pem -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; font-weight: bold; overflow-wrap: break-word !important;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/lib/kubelet/pki/kubelet-server-current.pem -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）kubelet 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart kubelet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）磁盘或内存耗尽&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl --vacuum-size=500M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;crictl image prune&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）containerd 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart containerd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart kubelet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）节点到控制面网络不通&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点查路由、防火墙、安全组和 LB 配置。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离与恢复&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果一时修不好，先隔离节点：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl cordon &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain &amp;lt;node-name&amp;gt; --ignore-daemonsets --delete-emptydir-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;恢复后再：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl uncordon &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;七、问题 6：存储卷挂载异常&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC 长期 Pending&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 启动后无法读写数据目录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有状态服务无法正常挂载卷&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点检查四层链路：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StorageClass&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PV&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CSI 驱动 / 存储后端&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 PVC&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc -n &amp;lt;namespace&amp;gt; &amp;lt;pvc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 PV&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pv &amp;lt;pv-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 StorageClass&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get storageclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe storageclass &amp;lt;sc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 CSI&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n kube-system | grep csi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system &amp;lt;csi-driver-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get csidrivers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;到节点检查挂载&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录节点执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mount | grep &amp;lt;pv-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h | grep &amp;lt;mount-path&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）StorageClass 不存在或 provisioner 错误&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）PVC 与 PV 不匹配&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）CSI 驱动异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pod -n kube-system &amp;lt;csi-driver-pod&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）节点无法访问存储后端&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;比如 NFS：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;showmount -e &amp;lt;nfs-server&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5）目录权限不匹配&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;fsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;2000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;runAsUser:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- sh -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;echo test &amp;gt; /data/test.txt &amp;amp;&amp;amp; cat /data/test.txt&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除 PVC 可能导致数据永久丢失，生产环境必须先确认备份。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;八、问题 7：资源限制或节点压力导致 Pod 异常&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 被杀掉、被驱逐，或者根本创建失败。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见表现包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOMKilled&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Evicted&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ResourceQuota 超限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这类问题要分开看：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOMKilled：通常是容器超过内存 limit&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Evicted：通常是节点压力触发驱逐&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;创建失败：通常是 quota / limitrange 限制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get resourcequota -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe resourcequota -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get limitrange -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe limitrange -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pod -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -n &amp;lt;namespace&amp;gt; --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）内存 limit 太小&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;512Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;1Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）节点资源压力&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是 Evicted，不要只盯 Pod，更要看节点层面的容量。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）命名空间配额耗尽&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可以适当调整：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;increase-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;hard:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;20&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;40Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;40&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;80Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）LimitRange 默认限制不合理&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多应用一上线就 OOM，问题根本不在代码，而在命名空间默认 limit 太小。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;九、问题 8：etcd 集群故障&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl 请求超时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API Server 不稳定&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;控制面整体异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 出问题时，表面看起来常常像“整个集群都怪怪的”。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这时优先确认：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 进程是否健康&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;endpoint 是否健康&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;member 是否完整&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘是否满了&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;证书是否过期&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 etcd 状态&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是静态 Pod：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl -n kube-system get pod -l component=etcd -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl -n kube-system logs &amp;lt;etcd-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是 systemd：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u etcd -n 100 --no-pager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看健康状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; endpoint health --cluster&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看成员状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; member list -w table&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看磁盘和证书&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /var/lib/etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /var/lib/etcd/*&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; font-weight: bold; overflow-wrap: break-word !important;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/kubernetes/pki/etcd/server.crt -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs check-expiration&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）磁盘空间不足&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可以先做 defrag：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl defrag --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）成员异常或网络分区&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;涉及 member remove 时一定要慎重。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）证书过期&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先用：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs check-expiration&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认是否真是证书问题。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 是集群最核心的组件之一。涉及成员变更、证书续期、快照恢复前，务必先做备份。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份示例：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl snapshot save /backup/etcd-$(date +%F-%H%M).db&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十、问题 9：DNS 解析异常&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 无法通过服务名访问目标服务，nslookup 超时或返回异常结果。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS 问题优先看三件事：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 是否健康&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 的 resolv.conf 是否正确&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;53 端口流量是否被拦截&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 CoreDNS 状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n kube-system -l k8s-app=kube-dns -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system &amp;lt;coredns-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;起一个测试 Pod 做解析验证&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run -it --rm debug --image=busybox -n default --restart=Never -- nslookup kubernetes.default&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run -it --rm debug --image=busybox -n default --restart=Never -- nslookup &amp;lt;svc-name&amp;gt;.&amp;lt;namespace&amp;gt;.svc.cluster.local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看业务 Pod 的 resolv.conf&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- cat /etc/resolv.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 CoreDNS 配置&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get configmap -n kube-system coredns -o yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看网络策略&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get networkpolicy -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）CoreDNS Pod 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deployment coredns -n kube-system&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）上游 DNS 配置错误&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）Headless Service 结果与预期不一致&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;clusterIP: None 返回的是 Pod IP 列表，不是单个 VIP。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）NetworkPolicy 阻断 53 端口&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是生产环境里很常见的误伤点。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十一、问题 10：安全上下文导致权限不足&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用报 Permission denied，常见表现包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;无法写目录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;无法绑定低位端口&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某些系统调用被拒绝&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 Kubernetes 1.28 中，重点关注：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;securityContext&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod Security Admission&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SELinux / AppArmor / seccomp&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;宿主机目录权限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o yaml | grep -A 30 securityContext&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get ns &amp;lt;namespace&amp;gt; --show-labels&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- ls -la /data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点侧检查：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;getenforce&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apparmor_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;seccomp 检查：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.securityContext.seccompProfile}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].securityContext.seccompProfile}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）非 root 用户无法写目录&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐修目录权限，而不是直接切 root：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;runAsUser:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;fsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;initContainers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #990073;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;fix-permission&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;busybox&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;sh&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;-c&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;chown -R 1000:1000 /data&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）缺少能力绑定低位端口&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;capabilities:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;drop:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;ALL&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;add:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;NET_BIND_SERVICE&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）只读根文件系统与应用行为冲突&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）命名空间安全策略限制&lt;/span&gt;&lt;/h3&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不要轻易把容器改成 privileged: true 或 runAsUser: 0，生产环境应尽量遵循最小权限原则。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十二、10 大高频问题排查矩阵&lt;/span&gt;&lt;/h1&gt;&lt;table width=&quot;549&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-align: left; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-align: left; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;首选排查命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-align: left; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod Pending&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源不足、污点、PVC 未绑定&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CrashLoopBackOff&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs --previous&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动命令错误、依赖不可达、探针失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 不通&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get endpoints&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;selector 不匹配、Pod 未 Ready、kube-proxy 异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像拉取失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像不存在、认证失败、TLS/网络问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node NotReady&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status kubelet&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubelet 异常、containerd 故障、磁盘满&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储卷异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StorageClass/CSI/权限问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM / Evicted / 配额失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit 不合理、节点压力、Quota 超限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 故障&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcdctl endpoint health&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘满、证书过期、成员异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS 异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nslookup&lt;/span&gt;&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+ CoreDNS 日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 异常、配置错误、策略阻断&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;securityContext&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;runAsUser、capabilities、PSA 限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十三、建议长期保留的一份巡检清单&lt;/span&gt;&lt;/h1&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 节点健康&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 异常 Pod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A | egrep -v&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;Running|Completed&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A | grep -i Evicted&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 资源配额&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get resourcequota -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get limitrange -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 存储状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 核心组件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -n kube-system&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 最近事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -A --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果条件允许，建议同时对以下指标配置监控告警：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node NotReady&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 重启次数异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pending Pod 数量&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC Pending 数量&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 错误率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 延迟与空间使用率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像拉取失败次数&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十四、写在最后&lt;/span&gt;&lt;/h1&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes 的问题之所以让人觉得“复杂”，很多时候并不是因为它真的无从下手，而是因为故障表象和真实根因之间隔了几层。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个 Pod 起不来，可能是资源问题；&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个 Service 不通，可能是 DNS、selector、探针，甚至网络策略；&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一次 API 超时，背后也可能不是 apiserver 本身，而是 etcd 已经开始出问题。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所以，排障最怕的不是问题复杂，而是没顺序。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;只要记住这条主线：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 16px; padding: 0px 1em; outline: 0px; border-left: 0.25em solid rgb(234, 236, 239); color: rgb(106, 115, 125); font-size: 16.25px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; -webkit-font-smoothing: antialiased; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先看状态，再看 Events；先缩小范围，再查日志；最后回到配置。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大部分生产环境里的常见故障，基本都能更快收敛。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你也在维护 Kubernetes 集群，建议把这篇文章先收藏起来。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多问题平时看着不常见，但真到线上出故障的时候，能不能第一时间找到排查路径，差别会非常大。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;你在生产环境里踩过最离谱的 Kubernetes 坑是什么？欢迎留言聊聊。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240952026945791.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;619&quot; height=&quot;218&quot; style=&quot;width: 619px; height: 218px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 15 May 2026 09:46:37 +0800</pubDate></item><item><title>打造生产级 Nginx 高性能体系：反向代理、负载均衡与缓存优化实践</title><link>https://www.docker.top/?id=461</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240955553662466.png&quot; alt=&quot;02f6b1a7c21f6bf92fb4ac06359e7d97.png&quot; width=&quot;793&quot; height=&quot;422&quot; style=&quot;width: 793px; height: 422px;&quot;/&gt;&lt;/section&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Nginx 1.26.x 是当前 mainline 分支的最新稳定线，在 HTTP/3 支持、动态模块加载和内存管理上相比 1.24.x 有明显改进。1.24.x 已进入维护模式，新项目直接选 1.26.x，旧项目建议在下次维护窗口升级。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;在现代微服务架构中，Nginx 承担的角色已远超传统 Web 服务器。它是流量入口的第一道关卡：接收外部请求、终止 TLS、执行负载均衡、缓存上游响应、转发到后端服务集群。一个配置不当的 Nginx 实例，即便后端服务性能再好，也会成为整个系统的瓶颈。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;高性能配置的核心矛盾在于：默认配置面向通用场景，而生产环境需要针对具体硬件、流量模式和业务特征做定向调优。worker 进程数、连接数上限、缓冲区大小、缓存策略——每一项参数背后都有对应的系统资源约束，盲目调大不会带来性能提升，反而可能引发内存压力或文件描述符耗尽。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Nginx 采用事件驱动的异步非阻塞架构，与 Apache 的 prefork/worker 多进程模型有本质区别：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;事件驱动模型&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：基于 epoll（Linux）/ kqueue（&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076718-0.8801488980747245&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;BSD&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;），单个 worker 进程可同时处理数万并发连接，不依赖线程切换&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;异步非阻塞 I/O&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：磁盘读写、网络 I/O 均不阻塞 worker 进程，配合&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;aio threads&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;可将文件 I/O 卸载到线程池&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低内存占用&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：每个连接消耗约 10-20KB 内存，10000 并发连接约占用 200MB，远低于线程模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;零拷贝传输&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;sendfile&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;系统调用直接在内核态完成文件到网络的数据传输，绕过用户态缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模块化架构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：核心功能精简，通过编译时模块或动态模块扩展，避免加载不必要的功能&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：将外部 HTTP/HTTPS 请求转发到内网应用服务器，隐藏后端拓扑，统一入口管理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负载均衡&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：在多个后端实例间分发流量，支持轮询、加权、IP 哈希、最少连接等策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;静态资源服务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：直接服务 CSS/JS/图片等静态文件，性能远超应用服务器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：结合 Lua（&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076717-0.6466608981888033&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;OpenResty&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;）或 njs 模块实现认证、限流、路由等网关功能&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存加速&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：缓存上游响应，降低后端压力，提升响应速度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SSL 终止&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：集中处理 TLS 握手，后端服务使用明文 HTTP，简化证书管理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.4 环境要求&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本要求&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ubuntu 22.04+ / CentOS Stream 8+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CentOS 7 已 EOL，不建议新部署&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.26.x mainline&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.24.x stable 可用，1.22.x 及以下避免&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenSSL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.0+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;支持 TLS 1.3，Ubuntu 22.04 默认满足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4核+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 进程数建议与物理核心数一致&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4GB+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存配置需预留足够内存，建议 8GB+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SSD，50GB+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache 路径建议独立挂载点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 编译安装与基础调优&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.1 编译参数选择&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;包管理器安装的 Nginx 通常缺少部分高性能模块，生产环境建议从源码编译以获得完整控制权。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/build-nginx.sh - Nginx 编译安装脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_VERSION=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1.26.2&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BUILD_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/tmp/nginx-build&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;INSTALL_PREFIX=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 安装编译依赖&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apt-get install -y \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; build-essential \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libpcre3-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libssl-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; zlib1g-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libgd-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libgeoip-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BUILD_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BUILD_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;wget&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;http://nginx.org/download/nginx-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_VERSION}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;nginx-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_VERSION}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;nginx-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_VERSION}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./configure \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --prefix=/etc/nginx \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --sbin-path=/usr/sbin/nginx \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --modules-path=/usr/lib64/nginx/modules \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --conf-path=/etc/nginx/nginx.conf \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --error-log-path=/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --http-log-path=/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --pid-path=/var/run/nginx.pid \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-threads \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用线程池，支持 aio threads&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-file-aio \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 异步文件 I/O，大文件传输性能提升明显&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_v2_module \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP/2 支持&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_v3_module \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP/3 / QUIC 支持（1.25.0+ 正式支持）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_ssl_module \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_realip_module \ &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 获取真实客户端 IP（CDN/代理场景必须）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_stub_status_module \&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控状态页&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_gzip_static_module \&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预压缩静态文件，避免每次请求重复压缩&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_cache_purge_module \&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缓存主动清理（需第三方模块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-stream \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TCP/UDP 代理（数据库代理、DNS 负载均衡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-stream_ssl_module \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-pcre-jit \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# PCRE JIT 加速正则匹配，location 规则多时效果显著&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-ld-opt=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-Wl,-rpath,/usr/local/lib&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;make -j&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(nproc)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;make install&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.2 worker 进程与连接数配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - 主配置文件全局段&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# auto 自动检测 CPU 核心数，等价于手动写核心数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 绑定 worker 到具体 CPU 核心可减少上下文切换，8核机器写 auto&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_cpu_affinity auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 单个 worker 可打开的最大文件描述符数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 必须 &amp;gt;= worker_connections * 2（每个连接占用2个fd：客户端+上游）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65536;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 错误日志级别：生产用 warn，调试用 debug（debug 会产生大量日志，影响性能）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pid /var/run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 动态模块加载（如需要）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;load_module modules/ngx_http_geoip_module.so;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 单 worker 最大并发连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 总并发 = worker_processes * worker_connections&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 4核机器设 16384，总并发约 65536&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; worker_connections 16384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 使用 epoll（Linux 最高效的 I/O 多路复用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use epoll;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 允许 worker 一次性接受所有新连接，而非逐个接受&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 高并发场景下减少系统调用次数，低流量场景意义不大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; multi_accept on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.3&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076718-0.32301571315085775&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;内核参数调优&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 性能上限受内核参数约束，应用层配置再好也无法突破内核限制。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/sysctl.d/99-nginx-tuning.conf - 内核参数调优&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修改后执行 sysctl -p /etc/sysctl.d/99-nginx-tuning.conf 生效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TCP 连接队列长度，默认 128 远不够用，高并发场景必须调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.somaxconn = 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_max_syn_backlog = 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许 TIME_WAIT 状态的 socket 被新连接复用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 反向代理场景下大量短连接会产生 TIME_WAIT，不开启会导致端口耗尽&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_tw_reuse = 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 系统最大文件描述符数，必须大于 worker_rlimit_nofile * worker_processes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fs.file-max = 1000000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 网卡接收队列长度，10Gbps 网卡建议调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.netdev_max_backlog = 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TCP 接收/发送缓冲区，影响大文件传输和高延迟链路性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.rmem_max = 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.wmem_max = 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_rmem = 4096 87380 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_wmem = 4096 65536 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 本地端口范围，反向代理向上游发起连接时使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认 32768-60999，约 28000 个端口，高并发场景可能不够&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.ip_local_port_range = 10000 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 应用内核参数并验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sysctl -p /etc/sysctl.d/99-nginx-tuning.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证关键参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sysctl net.core.somaxconn net.ipv4.tcp_tw_reuse fs.file-max&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置系统级文件描述符限制（/etc/security/limits.conf）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx soft nofile 65536&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /etc/security/limits.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx hard nofile 65536&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /etc/security/limits.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 反向代理配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 upstream 配置与健康检查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/upstream.conf - upstream 定义文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_api {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive 保持与上游的长连接池，避免每次请求重新建立 TCP 连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 值为连接池中保持的空闲连接数，不是最大连接数上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 后端是 HTTP/1.1 应用时，32-64 是合理起点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 64;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive_requests：单个长连接最多处理的请求数，防止连接老化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive_timeout：空闲连接保持时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 weight=2 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # backup 服务器：仅在所有主服务器不可用时启用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.14:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_static {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 静态资源服务器，使用最少连接策略&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.21:80 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.22:80 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 proxy_pass 细节&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass 的 trailing slash 是最常见的配置错误来源。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;行为完全不同：前者会截断 location 前缀，后者保留完整 URI。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/proxy-detail.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 末尾有斜杠：/api/users -&amp;gt; http://backend/users（截断 /api 前缀）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 末尾无斜杠：/api/users -&amp;gt; http://backend/api/users（保留完整路径）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api/;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 必须传递 Host，否则后端无法识别虚拟主机&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 传递真实客户端 IP，后端日志和业务逻辑依赖此值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 使用 HTTP/1.1 与上游通信，keepalive 必须配合此设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 清除 Connection 头，防止 keep-alive 信息传递到上游导致连接管理混乱&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 连接超时：Nginx 与上游建立 TCP 连接的超时时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 内网服务设 5s 足够，超过说明上游有问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_connect_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 读取超时：等待上游响应的超时时间（两次读操作之间的间隔）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 根据业务最慢接口设定，不是总响应时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 发送超时：向上游发送请求的超时时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓冲区配置：响应先缓冲到 Nginx，再发给客户端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 关闭缓冲（proxy_buffering off）适合 SSE/流式响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffer_size 16k; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 响应头缓冲区，通常 4k-16k 足够&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffers 8 32k; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 响应体缓冲区数量和大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_busy_buffers_size 64k; # 同时向客户端发送的最大缓冲量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 WebSocket 代理与长连接保持&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/websocket.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $http_upgrade $connection_upgrade {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default upgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;#39;&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp;close;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 当客户端不发送 Upgrade 头时，Connection 设为 close&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 避免普通 HTTP 请求被错误地保持为长连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name ws.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /ws/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_ws;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # WebSocket 升级握手必须的头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Upgrade $http_upgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection $connection_upgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # WebSocket 连接通常长时间保持，读取超时需要设长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 或设为 0（永不超时），但要配合心跳机制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 3600s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 关闭缓冲，WebSocket 消息需要实时传递&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffering off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 gRPC 反向代理配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/grpc.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream grpc_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:50051;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:50051;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl http2; &amp;nbsp;# gRPC 依赖 HTTP/2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name grpc.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/grpc.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/grpc.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # grpc_pass 替代 proxy_pass，专用于 gRPC 协议&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; grpc_pass grpc://grpc_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # gRPC 错误处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; error_page 502 = /error502grpc;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location = /error502grpc {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; internal;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default_type application/grpc;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # gRPC 状态码：14 = UNAVAILABLE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header grpc-status 14;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header content-length 0;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 204;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 负载均衡策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 轮询、加权轮询与 ip_hash&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/lb-strategies.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 默认轮询：请求依次分发到每个 server，适合无状态服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream rr_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 加权轮询：按 weight 比例分发，适合服务器配置不均的场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 下例中 .11 处理 50% 流量，.12 和 .13 各处理 25%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream weighted_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 weight=2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# ip_hash：同一客户端 IP 始终路由到同一后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 实现简单的会话保持，但存在热点问题（大量用户来自同一 NAT IP）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 不支持与 weight 同时使用（1.26.x 已支持，但行为需验证）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream iphash_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ip_hash;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 least_conn 与一致性哈希&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/lb-advanced.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# least_conn：将请求发送到当前活跃连接数最少的 server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 适合请求处理时间差异大的场景（如混合快慢接口）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 比轮询更能避免慢请求堆积在某个 server 上&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream leastconn_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# hash：基于自定义 key 的一致性哈希&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 适合缓存场景：相同 URL 始终路由到同一后端，提高后端缓存命中率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# consistent 参数启用一致性哈希，server 增减时只有少量请求重新分配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream hash_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; hash $request_uri consistent;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 基于请求头的哈希（适合 API 网关按用户 ID 路由）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream user_hash_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; hash $http_x_user_id consistent;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.3 被动健康检查与主动健康检查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开源版 Nginx 只支持被动健康检查（请求失败后标记 server 不可用），主动健康检查是商业版 Nginx Plus 的功能。开源替代方案是&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx_upstream_check_module&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;第三方模块。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/health-check.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_with_check {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # max_fails：在 fail_timeout 时间窗口内，失败次数达到此值则标记为不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # fail_timeout：不可用状态持续时间，同时也是统计失败次数的时间窗口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 上例：30秒内失败3次，则该 server 被下线30秒后重新尝试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 如果编译了 nginx_upstream_check_module，可配置主动健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# upstream backend_active_check {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; check interval=3000 rise=2 fall=3 timeout=1000 type=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; check_http_send &amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx http_3xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.4 会话保持方案对比&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现方式&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优点&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缺点&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ip_hash&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端 IP 哈希&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置简单，无需后端改造&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAT 环境下负载不均，server 下线时会话丢失&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;小规模、无 CDN 场景&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hash $cookie_session&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cookie 哈希&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;比 ip_hash 更精准&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要客户端支持 Cookie&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有登录态的 Web 应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sticky cookie（Plus）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 注入 Cookie&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;精确绑定，支持 server 下线迁移&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;商业版功能&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;企业级有状态应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用层共享 Session&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Redis/Memcached&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;彻底无状态，水平扩展&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要改造应用代码&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐方案，新项目首选&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 缓存优化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.1 proxy_cache 配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - http 段缓存路径定义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓存路径配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # levels=1:2：两级目录结构，避免单目录文件过多影响文件系统性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keys_zone=cache_main:100m：共享内存区名称和大小，100m 约存储 80万个 key&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # max_size=10g：缓存文件总大小上限，超出时 LRU 淘汰&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # inactive=60m：60分钟内未被访问的缓存自动删除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # use_temp_path=off：直接写入缓存目录，避免跨文件系统 rename 操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_path /data/nginx/cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keys_zone=cache_main:100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_size=10g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inactive=60m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 第二个缓存区，用于静态资源（更大的 inactive 时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_path /data/nginx/cache_static&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keys_zone=cache_static:50m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_size=20g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inactive=7d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.2 缓存策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/cache-policy.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # API 接口缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api/;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_main;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓存 key 设计：包含 scheme、host、URI 和查询参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 如果接口有用户态，需要加入 Cookie 或 Authorization 头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$scheme$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 不同响应码的缓存时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 302 10m; &amp;nbsp;# 成功响应缓存10分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 404 缓存1分钟，防止穿透攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid any 30s; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 其他响应码缓存30秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 绕过缓存的条件：有 Cookie 或特定请求头时不使用缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # $cookie_session 非空时，认为是登录用户，不走缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_bypass $cookie_session $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_no_cache $cookie_session $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # stale 配置：上游故障时，允许使用过期缓存响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 这是提升可用性的关键配置，避免上游抖动直接影响用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 防止缓存击穿：同一 key 只允许一个请求回源，其他请求等待&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_lock_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 在响应头中暴露缓存状态，便于调试（生产可关闭）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.3 静态文件缓存与 expires/&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076719-0.13820082717780213&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;Cache-Control&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/static-cache.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name static.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; root /var/www/static;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 带哈希指纹的静态资源（如 app.a1b2c3d4.js）可永久缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 浏览器缓存1年，CDN 缓存1年&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 1y;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 开启 gzip 静态压缩（需要预先生成 .gz 文件）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gzip_static on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # sendfile 零拷贝传输，静态文件服务必开&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tcp_nopush on; &amp;nbsp;# 配合 sendfile，批量发送响应头和文件内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HTML 文件不缓存或短时缓存（内容会更新）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.html$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires -1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;no-cache, no-store, must-revalidate&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # API 响应：私有缓存，不允许 CDN 缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;private, no-cache&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.4 缓存预热与清理&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/cache-warm.sh - 缓存预热脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_HOST=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://127.0.0.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;URL_LIST=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/scripts/warm-urls.txt&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CONCURRENCY=10 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 并发预热请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;warm_cache&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 通过 curl 访问触发缓存，-s 静默，-o /dev/null 丢弃响应体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; curl -s -o /dev/null -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%{http_code} %{url_effective}\n&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Host: www.example.com&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_HOST}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${url}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-f warm_cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 xargs 并发执行预热&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${URL_LIST}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| xargs -P&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${CONCURRENCY}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-I{} bash -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;warm_cache &amp;quot;$@&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;_ {}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Cache warm-up completed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/cache-purge.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 需要编译 ngx_cache_purge 模块&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name cache-admin.internal;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制只有内网可以访问清理接口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; allow 10.0.0.0/8;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; allow 192.168.0.0/16;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~ /purge(/.*) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_purge cache_main &amp;quot;$scheme$host$1&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5 SSL/TLS 优化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.1 TLS 1.3 配置与密码套件选择&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/ssl-base.conf - SSL 基础配置（include 到各 server 块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 只启用 TLS 1.2 和 1.3，TLS 1.0/1.1 已被 RFC 8996 废弃&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_protocols TLSv1.2 TLSv1.3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TLS 1.2 密码套件：优先 ECDHE（前向保密），禁用 RC4、3DES、MD5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 服务端优先选择密码套件（TLS 1.3 中此设置被忽略）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_prefer_server_ciphers off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# DH 参数文件，防止 Logjam 攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 生成命令：openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_dhparam /etc/nginx/ssl/dhparam.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 椭圆曲线选择：X25519 性能最好，P-256 兼容性最广&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_ecdh_curve X25519:prime256v1:secp384r1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.2 OCSP Stapling 与会话复用&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/ssl-performance.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# SSL 会话缓存：shared 在所有 worker 间共享，10m 约缓存 40000 个会话&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_session_cache shared:SSL:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_session_timeout 1d; &amp;nbsp;# 会话有效期1天，平衡安全性和性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TLS 1.3 会话票据（Session Tickets）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 允许客户端恢复会话，避免完整握手，减少延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 注意：多台 Nginx 需要共享相同的 ticket key，否则跨机器无法复用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_session_tickets off; &amp;nbsp;# 单机可开启，集群环境需要同步 key 或关闭&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# OCSP Stapling：Nginx 主动获取证书吊销状态并缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 客户端无需单独查询 OCSP 服务器，减少握手延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_stapling on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_stapling_verify on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 完整证书链（包含中间证书）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_trusted_certificate /etc/nginx/ssl/chain.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# DNS 解析器，用于 OCSP 查询&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resolver 8.8.8.8 8.8.4.4 valid=300s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resolver_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.3 HTTP/2 与 HTTP/3(QUIC) 启用&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/http2-http3.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HTTP/2：在 listen 指令中添加 http2 参数（Nginx 1.25.1+ 语法）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http2 on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HTTP/3 / QUIC：基于 UDP，需要 1.25.0+ 且编译了 --with-http_v3_module&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 quic reuseport;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/www.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/www.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-base.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-performance.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 告知客户端支持 HTTP/3，浏览器下次请求会尝试 QUIC&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Alt-Svc &amp;#39;h3=&amp;quot;:443&amp;quot;; ma=86400&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HSTS：强制浏览器使用 HTTPS，max-age 建议至少 6个月&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Strict-Transport-Security &amp;quot;max-age=15768000; includeSubDomains&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# HTTP 重定向到 HTTPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; return 301 https://$host$request_uri;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 完整的生产级 nginx.conf&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - 生产级主配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_cpu_affinity auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65536;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pid /var/run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; worker_connections 16384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use epoll;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; multi_accept on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/mime.types;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/octet-stream;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 自定义日志格式，包含响应时间和上游信息，便于性能分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; log_format main &amp;#39;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;rt=$request_time uct=$upstream_connect_time &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uht=$upstream_header_time urt=$upstream_response_time&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/access.log main buffer=32k flush=5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 零拷贝文件传输，静态文件服务必开&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # sendfile 开启后才有效：将多个小包合并成一个 TCP 包发送，减少网络开销&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁用 Nagle 算法，减少小包延迟，对实时性要求高的场景有效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 客户端连接保持时间，65s 是经验值，CDN 场景可适当调长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 65;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 隐藏 Nginx 版本号，减少信息泄露&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 客户端请求体大小限制，防止大文件上传耗尽内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_max_body_size 100m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_buffer_size 128k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 请求头缓冲区，大 Cookie 或 JWT Token 场景需要调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_buffer_size 4k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; large_client_header_buffers 4 16k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Gzip 压缩配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_vary on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_proxied any;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_comp_level 6; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 1-9，6 是压缩率和 CPU 消耗的平衡点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_min_length 1024; &amp;nbsp; &amp;nbsp;# 小于 1KB 的响应不压缩，压缩收益低于开销&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_types text/plain text/css text/xml text/javascript&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;application/json application/javascript application/xml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;application/rss+xml application/atom+xml image/svg+xml;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 线程池：将阻塞的文件 I/O 操作卸载到独立线程，避免阻塞 worker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; thread_pool default threads=32 max_queue=65536;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓存区域定义（供各 server 块引用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_path /data/nginx/cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keys_zone=cache_main:100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_size=10g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inactive=60m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/*.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 多站点反向代理 + 负载均衡完整配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/production.conf - 生产多站点配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API 服务集群&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream api_cluster {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 64;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 weight=2 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.14:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 静态资源服务器&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream static_cluster {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.21:80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.22:80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API 网关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http2 on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 quic reuseport;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/api.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/api.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-base.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-performance.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Alt-Svc &amp;#39;h3=&amp;quot;:443&amp;quot;; ma=86400&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Strict-Transport-Security &amp;quot;max-age=15768000; includeSubDomains&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Content-Type-Options nosniff always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Frame-Options DENY always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限流：每个 IP 每秒最多 100 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req_zone $binary_remote_addr zone=api_limit:10m rate=100r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req zone=api_limit burst=200 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://api_cluster/;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_connect_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_send_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 启用缓存（GET 请求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_main;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$scheme$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 5m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_bypass $http_cache_control;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_no_cache $http_pragma $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓存命中状态头，便于调试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 健康检查端点不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /health {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://api_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 静态资源站点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http2 on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name static.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/static.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/static.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-base.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|svg)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://static_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_main;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 浏览器缓存：静态资源设置长期缓存，配合文件名哈希实现缓存破坏&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 预压缩文件优先（需要 gzip_static 模块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gzip_static on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 缓存集群配置示例&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/cache-cluster.conf - 多级缓存配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 定义多个缓存区域，按内容类型分离&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_path /data/nginx/cache/api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keys_zone=cache_api:50m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_size=5g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; inactive=30m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_path /data/nginx/cache/static&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keys_zone=cache_static:100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_size=20g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; inactive=7d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 缓存锁：防止缓存击穿（多个请求同时穿透到上游）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock_age 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 后台更新：缓存过期时先返回旧内容，后台异步更新&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 避免缓存过期瞬间大量请求打到上游&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 上游不可用时使用过期缓存（降级策略）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name cache.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://api_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$scheme$host$uri$is_args$args&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 302 5m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 忽略上游的 Set-Cookie，防止带 Cookie 的响应被缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_ignore_headers Set-Cookie;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_hide_header Set-Cookie;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Date $upstream_http_date;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /static/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://static_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_static;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$uri&amp;quot;; &amp;nbsp;# 静态资源 key 不含 scheme/host，跨域共享缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, max-age=2592000, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 性能优化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/performance.conf - 性能优化配置集合&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # sendfile + tcp_nopush 组合：零拷贝传输 + 批量发送&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # sendfile 让内核直接将文件数据发送到网络，不经过用户态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # tcp_nodelay 禁用 Nagle 算法，减少小包延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 与 tcp_nopush 同时开启时，Nginx 会先积累数据（tcp_nopush），&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 连接进入 keepalive 状态后再启用 tcp_nodelay 刷新剩余数据&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 线程池异步文件 I/O，避免磁盘读写阻塞 worker 进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 适合大文件下载场景，小文件场景收益不明显&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; aio threads=default;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; aio_write on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 直接 I/O：绕过操作系统页缓存，适合大文件且不需要重复读取的场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 小文件或频繁访问的文件不要开启，会降低性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # directio 512;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # open_file_cache：缓存文件描述符、文件大小和修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 避免每次请求都调用 stat() 系统调用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache max=10000 inactive=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_valid 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_min_uses 2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_errors on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Gzip 压缩：文本内容压缩率通常 60-80%，显著减少传输量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_comp_level 6;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_min_length 1024;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_vary on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_proxied any;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_types&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; text/plain text/css text/xml text/javascript&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application/json application/javascript application/xml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application/rss+xml application/atom+xml image/svg+xml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; font/truetype font/opentype application/vnd.ms-fontobject;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 安全加固&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/security.conf - 安全加固配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 隐藏 Nginx 版本号，攻击者无法针对特定版本漏洞&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求方法，只允许 GET/POST/HEAD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; if ($request_method !~ ^(GET|POST|HEAD|PUT|DELETE|PATCH|OPTIONS)$) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 405;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 防止点击劫持&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Frame-Options SAMEORIGIN always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁止 MIME 类型嗅探，防止 XSS 攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Content-Type-Options nosniff always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # XSS 保护（现代浏览器已内置，但旧版浏览器需要此头）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-XSS-Protection &amp;quot;1; mode=block&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求体大小，防止大文件上传耗尽内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_max_body_size 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求头大小，防止 Header 注入攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; large_client_header_buffers 4 8k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限流：防止暴力破解和 DDoS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req_zone $binary_remote_addr zone=login_limit:10m rate=5r/m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_conn_zone $binary_remote_addr zone=conn_limit:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /login {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=login_limit burst=10 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn conn_limit 5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁止访问隐藏文件（.git、.env 等）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~ /\. {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; log_not_found off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁止访问备份文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.(bak|conf|dist|fla|inc|ini|log|psd|sh|sql|swp)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 高可用配置（Keepalived + Nginx 双主）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/keepalived/keepalived.conf - 主节点（192.168.1.11）配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vrrp_script check_nginx {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; script&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/scripts/check-nginx.sh&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; interval 2 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每2秒检查一次&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; weight -20 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查失败时优先级降低20，触发 VIP 漂移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; fall 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续失败2次才认为服务异常&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rise 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续成功2次才认为服务恢复&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vrrp_instance VI_1 {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; state MASTER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; interface eth0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; virtual_router_id 51&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; priority 100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主节点优先级高于备节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; advert_int 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; authentication {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; auth_type PASS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; auth_pass nginx_ha_2024&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; virtual_ipaddress {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 192.168.1.100/24 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# VIP，对外提供服务的 IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; track_script {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; check_nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/check-nginx.sh - Nginx 健康检查脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 Nginx 进程是否存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! pgrep -x nginx &amp;gt; /dev/null;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 尝试重启 Nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; systemctl start nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重启后再次检查，失败则退出非零状态触发 VIP 漂移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; pgrep -x nginx &amp;gt; /dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 Nginx 是否能正常响应请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http_code=$(curl -s -o /dev/null -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%{http_code}&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;http://127.0.0.1/health)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${http_code}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 配置注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;末尾斜杠是最常见的配置错误：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;会截断 location 前缀，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;则保留完整 URI。在 location 使用正则表达式时，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;不能带 URI 部分（即不能有斜杠后的路径），否则 Nginx 会拒绝启动。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;设置的是单个 worker 的连接数上限，包含客户端连接和上游连接。作为反向代理时，每个客户端请求至少占用 2 个连接（客户端 + 上游），实际并发客户端数约为&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections / 2&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_path&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keys_zone&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;内存区只存储缓存 key 的索引，不存储缓存内容本身。100m 的 keys_zone 约能存储 80 万个 key，缓存内容存储在磁盘上。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.2 常见错误&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误现象&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游服务不可用或连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查上游服务状态，调整 proxy_connect_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;504 Gateway Timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游响应超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增大 proxy_read_timeout，或优化上游接口性能&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;413 Request Entity Too Large&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体超过 client_max_body_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调大 client_max_body_size 或在上游处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;499 Client Closed Request&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端在响应前断开连接&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通常是客户端超时，检查客户端超时设置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream timed out (110)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查上游服务负载，调整超时参数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;no live upstreams while connecting&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有上游节点不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查上游服务，调整 max_fails/fail_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections are not enough&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接数耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增大 worker_connections 和 worker_rlimit_nofile&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;open() failed (24: Too many open files)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件描述符耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增大 worker_rlimit_nofile 和系统 ulimit&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.3 兼容性问题&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP/3 (QUIC) 需要防火墙放行 UDP 443 端口，许多企业网络默认封锁 UDP，导致 HTTP/3 降级到 HTTP/2。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Alt-Svc&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;响应头告知浏览器支持 HTTP/3，浏览器会在后续请求中尝试 QUIC，失败后自动回退，不影响功能。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http2 on&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;指令是 1.25.1 引入的新语法，旧版本使用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen 443 ssl http2&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。两种语法不能混用，升级 Nginx 版本后需要统一迁移。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 故障排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.1 日志分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - 自定义日志格式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 详细日志格式，包含所有关键性能指标&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; log_format detailed &amp;#39;$remote_addr - $remote_user [$time_local] &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$request&amp;quot; $status $body_bytes_sent &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$http_referer&amp;quot; &amp;quot;$http_user_agent&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;rt=$request_time &amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 总请求处理时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uct=$upstream_connect_time &amp;#39; # 与上游建立连接时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uht=$upstream_header_time &amp;#39; &amp;nbsp;# 收到上游响应头时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;urt=$upstream_response_time &amp;#39; # 上游响应总时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;cs=$upstream_cache_status &amp;#39; &amp;nbsp;# 缓存命中状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;ua=$upstream_addr&amp;#39;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 实际处理请求的上游地址&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 生产环境使用缓冲写入，减少磁盘 I/O&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/access.log detailed buffer=64k flush=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 错误日志：warn 级别记录重要错误，不记录 notice/info 级别的噪音&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 常用日志分析命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计响应状态码分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $9}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort | uniq -c | sort -rn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 找出响应时间最慢的10个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $NF, $7}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort -rn | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计每分钟请求量（流量趋势）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $4}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | cut -d: -f1-3 | uniq -c&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 找出请求量最大的 IP（排查 DDoS）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort | uniq -c | sort -rn | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时监控错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error|crit|alert|emerg&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.2 常见问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway 排查流程：&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 确认上游服务是否存活&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v http://10.0.1.11:8080/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 Nginx 错误日志中的具体错误信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -100 /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查上游连接数是否耗尽&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 TCP 连接统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tn state established | grep :8080 | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查上游服务的文件描述符限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /proc/$(pgrep -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;java&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)/limits | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;open files&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接数耗尽排查：&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 TIME_WAIT 连接数（过多说明短连接频繁）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tn state time-wait | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Nginx worker 打开的文件描述符数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls /proc/$(pgrep nginx | head -1)/fd | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查系统文件描述符使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /proc/sys/fs/file-nr&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.3 调试模式&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/debug.conf - 临时调试配置（生产环境用完立即删除）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 针对特定 IP 开启 debug 日志，避免全量 debug 影响性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/debug.log debug;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; debug_connection 192.168.1.100; &amp;nbsp;# 只对此 IP 的连接输出 debug 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试配置文件语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -t&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看编译参数和模块列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -V 2&amp;gt;&amp;amp;1 | tr&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重载配置（不中断现有连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Nginx 进程树&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时查看连接状态（需要 stub_status 模块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://127.0.0.1/nginx_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 性能监控&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.1 stub_status 模块&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/status.conf - 监控状态页&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 127.0.0.1:8080; &amp;nbsp;# 只监听本地，不对外暴露&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name localhost;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /nginx_status {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stub_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 只允许本机和监控服务器访问&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow 10.0.1.0/24;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# stub_status 输出示例及含义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Active connections: 291 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 当前活跃连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# server accepts handled requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp;16630948 16630948 31070465 &amp;nbsp; # 总接受连接数 / 总处理连接数 / 总请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Reading: 6 Writing: 179 Waiting: 106&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Reading: 正在读取请求头的连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Writing: 正在向客户端发送响应的连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Waiting: keepalive 空闲连接数（等待下一个请求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.2 Prometheus + nginx-exporter 监控&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 安装 nginx-prometheus-exporter&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v1.3.0/nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动 exporter（读取 stub_status 并转换为 Prometheus 格式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./nginx-prometheus-exporter \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; -nginx.scrape-uri=http://127.0.0.1:8080/nginx_status \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; -web.listen-address=:9113&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/prometheus/rules/nginx.yml - Prometheus 告警规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NginxHighActiveConnections&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx_connections_active&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Nginx 活跃连接数过高&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前活跃连接数&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，超过阈值 10000&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NginxHighErrorRate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5xx 错误率超过 5%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rate(nginx_http_requests_total{status=~&amp;quot;5..&amp;quot;}[5m])&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rate(nginx_http_requests_total[5m])&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.05&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Nginx 5xx 错误率过高&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.3 关键指标与告警阈值&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指标名称&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常范围&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;告警阈值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;活跃连接数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 5000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 10000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接近 worker_connections 上限时需扩容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求处理时间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 200ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 1000ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P99 超过1秒需排查上游或缓存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5xx 错误率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 0.1%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 1%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游服务异常的直接体现&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游响应时间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 100ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 500ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游服务性能问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存命中率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 50%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存策略需要优化&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接等待数(Waiting)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 1000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 5000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive 连接过多，可能需要调小 keepalive_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 备份与恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 配置备份脚本&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/nginx-backup.sh - Nginx 配置备份脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/backups/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_CONF_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RETENTION_DAYS=30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TIMESTAMP=$(date +%Y%m%d_%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${TIMESTAMP}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;backup_nginx_config&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 打包 Nginx 配置目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_FILE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --exclude=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/ssl/*.key&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\ &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 私钥单独备份，不放在普通备份中&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份完成：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_FILE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份大小：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(du -sh &amp;quot;${BACKUP_FILE}&amp;quot; | cut -f1)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;cleanup_old_backups&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除超过保留期的备份文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx_conf_*.tar.gz&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -mtime&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;+&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${RETENTION_DAYS}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-delete&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;已清理&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${RETENTION_DAYS}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;天前的备份&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;verify_backup&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证备份文件完整性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;tar -tzf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_FILE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;备份验证通过&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;备份文件损坏！&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backup_nginx_config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;verify_backup&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cleanup_old_backups&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.2 灰度发布与配置回滚&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/nginx-deploy.sh - 配置灰度发布脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_CONF_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/backups/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;deploy_config&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;new_config_dir=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;timestamp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timestamp=$(date +%Y%m%d_%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份当前配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; cp -r&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_before_deploy_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${timestamp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前配置已备份到：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_before_deploy_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${timestamp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 复制新配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rsync -av --delete&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${new_config_dir}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试新配置语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! nginx -t;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;新配置语法错误，回滚...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rsync -av --delete&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_before_deploy_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${timestamp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 热重载（不中断现有连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;配置部署成功，已热重载&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;rollback_config&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;backup_path=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${backup_path}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份目录不存在：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${backup_path}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rsync -av --delete&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${backup_path}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;nginx -t &amp;amp;&amp;amp; nginx -s reload;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;回滚成功&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;回滚失败，请手动检查配置&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${1:-}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; deploy) &amp;nbsp; deploy_config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${2}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rollback) rollback_config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${2}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; *) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;用法：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{deploy &amp;lt;config_dir&amp;gt;|rollback &amp;lt;backup_dir&amp;gt;}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;esac&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_cpu_affinity auto&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65536&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，三者配合才能充分利用多核并支撑高并发&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内核参数&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;somaxconn&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tcp_tw_reuse&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;file-max&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是必须调整的三个参数，不调整会在中等流量下触发瓶颈&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_http_version 1.1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_set_header Connection &amp;quot;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是启用上游长连接的完整组合，缺一不可&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_use_stale&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;配置上游降级策略，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;防止缓存击穿，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_background_update&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;避免缓存过期时的流量尖刺&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TLS 优化&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：TLS 1.3 + OCSP Stapling + 会话缓存，三者叠加可将 TLS 握手延迟降低 50% 以上&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenResty / njs&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：在 Nginx 中嵌入 Lua 或 JavaScript 逻辑，实现 JWT 验证、动态路由、A/B 测试等 API 网关功能，无需引入独立网关组件&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx Unit&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Nginx 官方的应用服务器，支持动态配置（无需重载），可直接运行 Python/PHP/Node.js 应用，适合替代 uWSGI/Gunicorn&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;eBPF + Nginx&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 eBPF 在内核层面监控 Nginx 的网络行为，实现零侵入的性能分析和安全审计&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 官方文档 - 权威参考，指令说明以此为准&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 源码 - 理解内部实现的最直接途径&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx-prometheus-exporter - 官方 Prometheus 集成&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Mozilla SSL Configuration Generator - TLS 配置生成工具，覆盖主流浏览器兼容性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 命令速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置测试与重载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试配置文件语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -T &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试并输出完整配置（含 include 文件）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reload &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 热重载配置（不中断连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reopen &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重新打开日志文件（日志切割后使用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s quit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优雅停止（等待现有请求完成）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s stop &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 立即停止&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进程管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl start nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl stop nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 停止&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl reload nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重载（等同于 nginx -s reload）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时查看错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -V 2&amp;gt;&amp;amp;1 | tr&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看编译参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tn state established dst :80 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看到80端口的连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接统计摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://127.0.0.1/nginx_status&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 stub_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缓存管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find /data/nginx/cache -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;f | wc -l &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计缓存文件数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /data/nginx/cache &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看缓存占用空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. 配置参数详解&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;auto&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 进程数，auto 自动匹配 CPU 核数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;512&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;16384&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单 worker 最大连接数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统默认&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;65536&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 进程文件描述符上限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;75s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;65s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端 keepalive 超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与上游建立连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等待上游响应超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client_max_body_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1m&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10m-100m&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体大小限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gzip_comp_level&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;压缩级别，6 是性能与压缩率平衡点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;off&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;on&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止缓存击穿&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;open_file_cache max&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件描述符缓存条目数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;C. 术语表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;术语&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解释&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Reverse Proxy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代表后端服务接收客户端请求，客户端不直接访问后端&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负载均衡&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Load Balancing&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将流量分发到多个后端实例，提升吞吐量和可用性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Upstream&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 转发请求的目标服务器或服务器组&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存击穿&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cache Breakdown&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;热点 key 过期瞬间大量请求同时穿透到上游&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存穿透&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cache Penetration&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求不存在的数据，每次都穿透缓存打到上游&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;惊群效应&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Thundering Herd&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多个进程/线程同时被唤醒竞争同一资源&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;前向保密&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Forward Secrecy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;即使私钥泄露，历史会话数据也无法被解密&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OCSP 装订&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OCSP Stapling&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务端预先获取证书吊销状态并附在 TLS 握手中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;零拷贝&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Zero-Copy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据在内核态直接传输，不经过用户态缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;事件驱动&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Event-Driven&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过事件通知机制处理 I/O，而非为每个连接分配线程&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240956216128456.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;587&quot; height=&quot;197&quot; style=&quot;width: 587px; height: 197px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 27 Apr 2026 09:54:34 +0800</pubDate></item><item><title>大模型服务稳定性实战：超时、限流、OOM 排查全攻略</title><link>https://www.docker.top/?id=462</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240958392311012.jpg&quot; alt=&quot;916fd1300e1e453cb03fc3f82d4b65ab.jpg&quot; width=&quot;748&quot; height=&quot;386&quot; style=&quot;width: 748px; height: 386px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; data-website=&quot;https://www.mdnice.com&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px 10px; outline: 0px; max-width: 100%; overflow-wrap: break-word; word-spacing: 0em; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; line-height: 1.5em; letter-spacing: 0em; word-break: break-word; visibility: visible; box-sizing: border-box !important;&quot;&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;大模型服务上线后，最让运维头疼的不是部署——部署有文档照着走就行。真正折腾人的是上线之后各种花式报错：用户反馈&amp;quot;接口超时了&amp;quot;，告警群里跳出&amp;quot;GPU OOM&amp;quot;，API 日志里一堆 429 Too Many Requests。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这三类问题——超时、限流、OOM——占了大模型服务日常故障的 80% 以上。实测在一套跑了 Qwen/Qwen3.5-35B-A3B-FP8 的 vLLM 集群上，上线头两个月的 200 多次告警中，超时占 45%，OOM 占 30%，限流占 15%，其他杂项占 10%。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这篇文章把排查方法论和具体操作步骤都写清楚。不讲理论，直接给命令、给配置、给实际案例。每个错误类型从&amp;quot;看到什么现象&amp;quot;开始，到&amp;quot;怎么定位根因&amp;quot;，再到&amp;quot;怎么解决&amp;quot;，完整链路走一遍。&lt;/span&gt;&lt;/p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这篇文章的组织方式：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统化排错方法论&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：不是头痛医头脚痛医脚，而是建立一套从症状到根因的判断链&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按错误类型分类&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：超时、限流、OOM、CUDA 错误、模型加载错误，每类独立成章&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从症状到根因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：先看到什么，再查什么，最后改什么。每一步都给具体命令&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;覆盖多层排查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：客户端 → API 网关 → 推理引擎 → GPU/系统，逐层定位&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 0.8.x 推理服务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：目前生产环境用得最多的推理引擎，本文重点覆盖&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TGI（Text Generation Inference）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：HuggingFace 出品，部分排查方法通用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ollama&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：开发测试环境常用，OOM 问题最多&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关层&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Nginx、Envoy、Kong 等反向代理的超时和限流配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端调用层&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Python requests / aiohttp / OpenAI SDK 的超时处理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 报错分类体系&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务的报错可以按照五大类来组织。先看清全局，再逐个击破。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务报错&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 超时类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── TTFT 超时（首 token 延迟过高）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── TPS 下降（生成速度变慢）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── 连接超时（TCP 握手/HTTP 连接失败）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 网络超时（请求在网络层丢失）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 限流类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 429 Too Many Requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── 推理引擎内部队列满&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── Token 配额耗尽&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── OOM 类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── GPU OOM（显存不足）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── CPU OOM（主机内存不足）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 容器 OOM Killed（cgroup 限制触发）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── CUDA 错误类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── CUDA OOM（和 GPU OOM 有区别）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── NCCL 通信错误（多卡场景）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── CUDA device-side assert&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── CUDA 版本不兼容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 模型加载类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── 权重文件损坏/校验失败&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── 显存不足无法加载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── safetensors 格式错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; └── 磁盘空间不足&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;下面逐一详解。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 超时问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时是最常见的问题，也是最容易被误判的。用户说&amp;quot;超时了&amp;quot;，可能是 TTFT 慢、可能是 TPS 低、可能是连接都建不上。第一步要区分到底是哪种超时。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 快速区分超时类型&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用 curl 测试端到端延迟，看各阶段耗时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -o /dev/null -s -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; DNS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%{time_namelookup}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Connect: &amp;nbsp; &amp;nbsp;%{time_connect}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; TLS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%{time_appconnect}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; TTFB: &amp;nbsp; &amp;nbsp; &amp;nbsp; %{time_starttransfer}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Total: &amp;nbsp; &amp;nbsp; &amp;nbsp;%{time_total}s\n&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -X POST http://localhost:8000/v1/chat/completions \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;model&amp;quot;:&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;,&amp;quot;messages&amp;quot;:[{&amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;hello&amp;quot;}],&amp;quot;max_tokens&amp;quot;:50}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;输出示例：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.001s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connect: &amp;nbsp; &amp;nbsp;0.002s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TLS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.000s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFB: &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.234s &amp;nbsp; &amp;nbsp; ← 这就是 TTFT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total: &amp;nbsp; &amp;nbsp; &amp;nbsp;3.456s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;判断规则：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connect &amp;gt; 1s → 连接超时，查网络&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFB &amp;gt; 5s → TTFT 超时，查推理引擎&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total - TTFB 过大 → TPS 低，生成阶段慢&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求直接失败 → 看错误码，连接拒绝或超时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 TTFT 超时排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFT（Time To First Token）是用户发出请求到收到第一个 token 的时间。这个阶段主要是 prefill（预填充），计算量和 prompt 长度成正比。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常基线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（vLLM 0.7.x，单卡 A100 80G，Qwen/Qwen3.5-35B-A3B-FP8）：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prompt 长度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFT 正常值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要关注&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要告警&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100-300ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;500ms+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1000 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;300-800ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.5s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4000 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1-3s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;16000 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3-8s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;15s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266244509-0.8279014966153493&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;KV Cache&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;碎片化&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 用&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266244510-0.31788092422198266&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;PagedAttention&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;管理 KV Cache，但长时间运行后会产生碎片，导致新请求分配 KV Cache 变慢。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 vLLM 的 KV Cache 使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:gpu_cache_usage_perc&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vllm:gpu_cache_usage_perc 0.87&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超过 0.9 就要注意了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-memory-utilization&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;参数，给 KV Cache 更多空间，或者降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（最大并发请求数）。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长 Prompt Prefill 慢&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prefill 阶段的计算量和 prompt 长度的平方成正比（attention 计算）。一个 16K token 的 prompt 比 1K token 的 prompt 慢 16 倍不止。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控 prefill 耗时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:e2e_request_latency&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启用 chunked prefill（vLLM 0.7.x 默认启用）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于超长 prompt，考虑拆分或摘要&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 算力不足&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同时跑了太多并发请求，GPU 被压满。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时看 GPU 利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi dmon -s u -d 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出字段说明：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# sm: SM 利用率（Streaming Multiprocessor）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# mem: 显存带宽利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# enc/dec: 编解码器利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看到 sm 持续 &amp;gt; 95% 说明 GPU 计算已经打满&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：横向扩容（加 GPU），或降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;限制并发。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度延迟&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求在 vLLM 的 scheduler 队列中等待时间过长。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查等待队列长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:num_requests_waiting&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果 waiting &amp;gt; 10，说明队列积压了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 TPS 下降排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TPS（Tokens Per Second）是生成阶段每秒输出的 token 数。TPS 下降意味着用户要等更长时间才能拿到完整回复。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常基线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（单卡 A100 80G，Qwen/Qwen3.5-35B-A3B-FP8）：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;并发数&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单请求 TPS&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;总 TPS&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60-80&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60-80&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单请求性能&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30-50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;300-500&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;batching 效果明显&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;15-25&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;750-1250&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接近饱和&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8-15&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;800-1500&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超过最优点，单请求体验下降&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Batch 队列满&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查当前 batch 中的请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:num_requests_running&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# running 接近 max-num-seqs 就说明 batch 满了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;显存不足触发 swap&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 支持将 KV Cache swap 到 CPU 内存，但 swap 后 TPS 会暴跌。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 swap 次数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:cpu_cache_usage_perc&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果 cpu_cache_usage &amp;gt; 0，说明在 swap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，减少 KV Cache 需求。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 温度降频&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A100 在 85°C 以上会自动降频，TPS 直接打折。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 温度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正常工作温度：60-80°C&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;gt; 83°C：开始降频&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;gt; 90°C：严重降频或关机保护&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：检查散热系统、风扇转速、机房温度。数据中心环境一般不会有这个问题，但用 RTX 4090 的工作站经常遇到。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NUMA 亲和性问题&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多路 CPU 服务器上，如果 vLLM 进程和 GPU 不在同一个 NUMA 节点，PCIe 传输走跨 NUMA 路径，带宽减半。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 GPU 所在 NUMA 节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi topo -m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看进程的 NUMA 绑定&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;numactl -s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 绑定到 GPU 所在 NUMA 节点启动 vLLM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;numactl --cpunodebind=0 --membind=0 python -m vllm.entrypoints.openai.api_server ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 连接超时排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接超时意味着请求根本没到推理引擎。排查路径是从客户端到服务端逐层检查。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第一步：检查服务端口是否在监听&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tlnp | grep 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预期输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# LISTEN &amp;nbsp;0 &amp;nbsp;128 &amp;nbsp;0.0.0.0:8000 &amp;nbsp;0.0.0.0:* &amp;nbsp;users:((&amp;quot;python&amp;quot;,pid=12345,fd=7))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果没有输出，说明 vLLM 没启动或端口不对&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第二步：检查防火墙&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;iptables -L -n | grep 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者用 firewalld&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;firewall-cmd --list-all&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第三步：检查网络连通性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从客户端机器测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;telnet &amp;lt;server_ip&amp;gt; 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nc -zv &amp;lt;server_ip&amp;gt; 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第四步：如果通过反向代理，检查 Nginx/Envoy 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -I http://localhost:80/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看返回状态码和 upstream 信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 服务未就绪的常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 vLLM 进程是否存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm.entrypoints&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -v grep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果进程存在但端口没监听，说明还在加载模型&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 vLLM 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u vllm -f&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server -f 2&amp;gt;&amp;amp;1 | tail -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型加载中的典型日志：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Loading model weights...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Loading model weights took 45.23 seconds&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Uvicorn running on http://0.0.0.0:8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看到 Uvicorn running 才说明服务就绪&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.5 超时参数调优指南&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务的超时配置涉及三层：客户端、网关、推理引擎。三层要配合，否则会出现&amp;quot;客户端已经超时了，但服务端还在算&amp;quot;的资源浪费问题。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时链路示意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端超时 &amp;gt; 网关超时 &amp;gt; 推理引擎超时（应从外到内递减）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等等，这个逻辑是反过来的——外层的超时应该大于或等于内层，否则内层还没超时外层就断了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正确的配置：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推理引擎内部超时: 120s（最长允许执行时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx proxy_read_timeout: 150s（留 30s 缓冲）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端 timeout: 180s（再留 30s 缓冲）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 超时参数&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 启动参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 32768 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.9 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 64 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --request-timeout 120 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 单请求最大处理时间（秒）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 超时配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/llm-proxy.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream vllm_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name llm.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 客户端相关超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 代理相关超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s; &amp;nbsp; &amp;nbsp; # 连接后端的超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 30s; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 发送请求到后端的超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 150s; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 等待后端响应的超时（要大于 vLLM 的 request-timeout）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # SSE（Server-Sent Events）支持，stream 模式必须&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_buffering off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;#39;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chunked_transfer_encoding on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Python 客户端超时配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client = openai.OpenAI(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; base_url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://llm.example.com/v1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; api_key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;not-needed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=openai.Timeout(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connect=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 读取超时（等待响应）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 写入超时（发送请求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接池超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 自动重试次数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# stream 模式下的超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;response = client.chat.completions.create(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; messages=[{&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;role&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;写一首诗&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stream=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 限流问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 HTTP 429 Too Many Requests 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看到 429 状态码，先确认是哪一层返回的。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试请求，看响应头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v -X POST http://localhost:8000/v1/chat/completions \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;model&amp;quot;:&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;,&amp;quot;messages&amp;quot;:[{&amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;hi&amp;quot;}],&amp;quot;max_tokens&amp;quot;:10}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^&amp;lt; (HTTP|X-|Retry|RateLimit)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键响应头：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Retry-After: 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 几秒后重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-RateLimit-Limit: 100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 速率上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-RateLimit-Remaining: 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; → 剩余配额&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-RateLimit-Reset: 1710300000 &amp;nbsp;→ 配额重置时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;判断限流来源：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应头特征&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;来源&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理方式&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;X-RateLimit-*&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;头&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关层&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调整网关限流配置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应体包含&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;关键字&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 引擎&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调整 vLLM 并发参数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server: nginx&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server: envoy&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理层&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调整代理限流配置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应体包含&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;token quota&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Token 计费层&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;充值或联系管理员&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 vLLM 内部队列限制&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 有几个参数直接控制了它能同时处理多少请求：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前运行的 vLLM 启动参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep vllm | grep -v grep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键参数说明：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-num-seqs 256 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: 最大同时处理的序列数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-num-batched-tokens 32768 : 每个 batch 最大 token 数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-model-len 32768 &amp;nbsp; &amp;nbsp; : 单请求最大上下文长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs 调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个参数控制 vLLM 同时处理的最大请求数。设太小会限流，设太大会 OOM。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐计算公式：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs = 可用显存 / (平均 KV Cache per request)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A100 80G，gpu-memory-utilization=0.9，Qwen3.5-35B-A3B-FP8 模型占 18GB：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可用 KV Cache = 80 × 0.9 - 18 = 54 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;假设平均每请求用 200MB KV Cache（平均 context 2048 tokens）：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs ≈ 54000 / 200 = 270&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实际要留安全裕量，建议设 200-256&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-batched-tokens 调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 这个参数限制每个调度周期中所有请求的 token 总数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设太小：GPU 利用率低，吞吐量差&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设太大：prefill 延迟高，因为一个长请求可能占满整个 batch&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推荐值：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 短对话场景（平均 &amp;lt; 2K tokens）：max-num-batched-tokens = 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 长文档场景（平均 &amp;gt; 4K tokens）：max-num-batched-tokens = 32768&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# RAG 场景（prompt 长、response 短）：max-num-batched-tokens = 65536&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.3 Nginx 层限流配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/llm-ratelimit.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 定义限流区域&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# rate=50r/s 表示每秒 50 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# zone=llm_limit:10m 表示用 10MB 内存存储状态（约能跟踪 16万个 IP）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $binary_remote_addr zone=llm_limit:10m rate=50r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 基于 API Key 的限流（更细粒度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $http_authorization $api_key {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;~Bearer (.+)&amp;quot; $1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $api_key zone=llm_key_limit:10m rate=20r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/chat/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 允许突发 20 个请求，不延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=llm_limit burst=20 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 基于 API Key 的限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=llm_key_limit burst=10 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 限流时返回 429 而不是默认的 503&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.4 Token Bucket 机制说明&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限流最常用的算法是 Token Bucket（令牌桶），理解这个机制有助于调参：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;令牌桶工作原理：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1. 桶以固定速率 rate 填充令牌&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2. 桶最多容纳 burst 个令牌（突发容量）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3. 每个请求消耗一个令牌&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4. 桶空时，新请求被拒绝（返回 429）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例：rate=50r/s, burst=20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 正常情况：每秒稳定处理 50 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 突发情况：瞬间可处理 50+20=70 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 持续高压：稳定在 50r/s，超出的被 429&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.5 限流配置调优建议&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate 建议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;burst 建议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内部 RAG 系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100r/s per IP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用户量小，单用户可能连续查询&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对外 API 服务&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10r/s per API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;20&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止单用户打爆&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;200r/s 全局&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端处理能力的 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开发测试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不限流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试环境放开&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 OOM 问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM 是最头疼的问题，因为它通常导致服务直接挂掉，而且重启后如果不改配置还会继续挂。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.1 GPU OOM 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：vLLM 日志出现&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，服务崩溃或卡死。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一步：看显存占用&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时监控显存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi -l 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者更详细的显存分配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free,utilization.gpu --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 0, NVIDIA A100-SXM4-80GB, 81920 MiB, 72448 MiB, 9472 MiB, 95 %&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看每个进程的显存占用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 12345, python, 71680 MiB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二步：检查 vLLM 的显存分配&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 启动日志中会打印显存分配信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server 2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU|memory|cache&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: GPU 0: NVIDIA A100-SXM4-80GB (80 GiB)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Model weights: 18.2 GiB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: KV cache: 54.0 GiB (gpu_memory_utilization=0.9)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Available KV cache blocks: 27648&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三步：分析 OOM 原因&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存的构成：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;总显存 = 模型权重 + KV Cache + 激活值 + CUDA 上下文 + 碎片&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A100 80GB 的典型分配（Qwen/Qwen3.5-35B-A3B-FP8）：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 模型权重: &amp;nbsp;~18 GB（FP8 量化后）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; CUDA 上下文: ~2 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 可用空间: &amp;nbsp;~60 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gpu-memory-utilization=0.9 时：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; KV Cache: 60 × 0.9 = 54 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 预留: &amp;nbsp; &amp;nbsp; 60 × 0.1 = 6 GB（给激活值和碎片）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM 场景分析：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;典型日志&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型太大，显存装不下&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OutOfMemoryError: CUDA out of memory. Tried to allocate 2.00 GiB&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;No available memory for the request&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长对话 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单请求 context 超长&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Request exceeds max_model_len&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;并发高时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同时请求太多&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;All cache blocks are allocated&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四步：解决方案&lt;/strong&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动时 OOM — 模型太大&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案 A：降低精度（如果模型支持）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --quantization fp8 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# FP8 量化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案 B：多卡张量并行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --tensor-parallel-size 2 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用 2 张卡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案 C：降低 gpu-memory-utilization&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.85 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 0.9 降到 0.85&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行时 OOM — KV Cache 不够&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 降低最大并发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs 128 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 256 降到 128&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 降低最大上下文长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len 16384 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 32768 降到 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者两个都降&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs 128 --max-model-len 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长对话 OOM — 限制单请求长度&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 启动参数限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len 8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 应用层也要做限制，别完全依赖 vLLM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 API 网关层截断超长请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.2 CPU OOM 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：服务器响应缓慢或被 OOM Killer 杀死，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;中有&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Out of memory: Killed process&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;日志。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第一步：检查 OOM 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;oom\|killed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [123456.789] Out of memory: Killed process 12345 (python) total-vm:98765432kB, anon-rss:65432100kB, file-rss:1234kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 注意 anon-rss 就是进程实际使用的物理内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第二步：检查当前内存状况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; total &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;used &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;free &amp;nbsp; &amp;nbsp; &amp;nbsp;shared &amp;nbsp;buff/cache &amp;nbsp; available&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Mem: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 125Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; 98Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; 2.1Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.2Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;25Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;24Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Swap: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0B&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第三步：查看内存大户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux --sort=-%mem | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第四步：查看详细内存分配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /proc/meminfo | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;MemTotal|MemFree|MemAvailable|SwapTotal|SwapFree|Cached|Buffers&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU OOM 的常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型加载时的内存峰值&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 加载模型时需要先在 CPU 内存中读取权重文件，然后再传到 GPU。一个 35B 参数的 FP8 模型，CPU 侧需要约 35GB 内存。如果同时还跑了其他服务，很容易 OOM。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看模型文件大小（估算 CPU 内存需求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /models/Qwen3.5-35B-A3B-FP8/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预留 CPU 内存 = 模型文件大小 × 1.5 + 操作系统和其他服务需求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tokenizer 内存泄漏&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部分 tokenizer 在处理大量请求后会出现内存缓慢增长的问题。线上跑了 3 天后 CPU 内存从 20GB 涨到 45GB 就是这个坑。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控进程内存变化趋势&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(ps aux | grep &amp;#39;vllm&amp;#39; | grep -v grep | awk &amp;#39;{print $6}&amp;#39;)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;KB&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep 60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm_mem_monitor.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：定期重启 vLLM 服务（比如每天凌晨），或者升级到最新版本看是否修复。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;swap 未配置&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境的 GPU 服务器经常不配 swap，内存一满就直接 OOM Kill。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时添加 swap（应急）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo fallocate -l 32G /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo chmod 600 /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo mkswap /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo swapon /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 永久生效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;/swapfile none swap sw 0 0&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| sudo tee -a /etc/fstab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但要注意：swap 会严重影响性能，只适合兜底，不能当常态。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.3 容器 OOM Killed 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;显示 OOMKilled。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod vllm-pod-xxxxx | grep -A5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Last State&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; Last State: &amp;nbsp; &amp;nbsp; Terminated&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Reason: &amp;nbsp; &amp;nbsp; &amp;nbsp; OOMKilled&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Exit Code: &amp;nbsp; &amp;nbsp;137&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Started: &amp;nbsp; &amp;nbsp; &amp;nbsp;Mon, 10 Mar 2026 14:00:00 +0800&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Finished: &amp;nbsp; &amp;nbsp; Mon, 10 Mar 2026 16:32:15 +0800&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看容器内存限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod vllm-pod-xxxxx -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.spec.containers[*].resources}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect vllm-server --format=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{{.State.OOMKilled}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect vllm-server --format=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{{.HostConfig.Memory}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因：容器内存限制（resources.limits.memory）设得比实际需求小。&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存需求计算：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存 = CPU 内存（模型加载 + tokenizer + 请求缓冲）+ 系统开销&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实测 Qwen/Qwen3.5-35B-A3B-FP8 的 CPU 内存需求：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 模型加载峰值: ~35 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 运行时稳态: &amp;nbsp; ~20 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; tokenizer: &amp;nbsp; &amp;nbsp;~2 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 请求缓冲: &amp;nbsp; &amp;nbsp; ~3 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 系统开销: &amp;nbsp; &amp;nbsp; ~3 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 总计: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ~63 GB（峰值）/ ~28 GB（稳态）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes Pod 资源配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 稳态需求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;72Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 峰值需求 + 20% 缓冲&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run -d \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpus&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;&amp;quot;device=0&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --memory=72g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --memory-swap=72g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --shm-size=8g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --name vllm-server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; vllm/vllm-openai:v0.7.6 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.9&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.4 OOM 根因速查表&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 日志&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OutOfMemoryError&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 gpu-memory-utilization / 减少 max-num-seqs&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Killed process&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | grep oom&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU 内存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加内存 / 加 swap / 减少并发&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod OOMKilled&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存限制太小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调大 resources.limits.memory&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;All cache blocks are allocated&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看 metrics&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 用完&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 max-num-seqs 或 max-model-len&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存持续增长&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;持续监控 RSS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存泄漏&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定期重启 / 升级版本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh model/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型太大&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用量化版本 / 多卡并行&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5 其他常见错误&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.1 CUDA Error: out of memory vs GPU OOM&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多人分不清&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的区别。&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：PyTorch 层面的内存分配失败，通常是 KV Cache 或激活值分配不到显存。vLLM 通常能捕获这个错误并优雅降级（拒绝新请求，不会崩溃）。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：CUDA 驱动层面的错误，更底层。一旦出现，整个 CUDA context 可能损坏，需要重启进程。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果 CUDA context 损坏，需要重置 GPU&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --gpu-reset -i 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 注意：gpu-reset 会杀死该 GPU 上所有进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 先确认没有其他重要进程在用这张卡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv -i 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.2 CUDA Error: device-side assert triggered&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: CUDA error: device-side assert triggered&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个错误通常是模型推理过程中的数值异常（NaN/Inf）触发了 CUDA kernel 的 assert。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型权重文件损坏&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;输入数据中有异常值&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;FP16 精度溢出&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排查步骤&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查模型文件完整性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;from safetensors import safe_open&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;import os&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;model_dir = &amp;#39;/models/Qwen3.5-35B-A3B-FP8&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;for f in os.listdir(model_dir):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; if f.endswith(&amp;#39;.safetensors&amp;#39;):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with safe_open(os.path.join(model_dir, f), framework=&amp;#39;pt&amp;#39;) as sf:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for key in sf.keys():&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tensor = sf.get_tensor(key)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if tensor.isnan().any() or tensor.isinf().any():&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f&amp;#39;WARNING: {f}/{key} contains NaN/Inf!&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f&amp;#39;OK: {f}&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; except Exception as e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f&amp;#39;ERROR: {f}: {e}&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 启用 CUDA_LAUNCH_BLOCKING 获取精确堆栈&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA_LAUNCH_BLOCKING=1 python -m vllm.entrypoints.openai.api_server ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 如果是 FP16 溢出，尝试用 BF16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype bfloat16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.3 RuntimeError: NCCL communicator was aborted&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多卡推理（tensor parallel）时 NCCL 通信失败。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: NCCL communicator was aborted on rank 1. Original reason: ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见原因和解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. GPU 之间的 NVLink/PCIe 通信故障&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 拓扑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi topo -m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. NCCL 版本和 CUDA 版本不匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;import torch; print(torch.cuda.nccl.version())&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 进程间通信端口冲突&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置 NCCL 使用不同端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;NCCL_SOCKET_IFNAME=eth0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;NCCL_IB_DISABLE=1 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 禁用 InfiniBand（如果没有 IB 网卡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 共享内存不足&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 /dev/shm 大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /dev/shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境需要加大 shm-size&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run --shm-size=8g ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; - name: dshm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; emptyDir:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; medium: Memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; sizeLimit: 8Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.4 模型加载失败&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权重文件损坏&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查文件 hash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sha256sum /models/Qwen3.5-35B-A3B-FP8/*.safetensors&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 和 HuggingFace 上的 hash 对比&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果不一致，重新下载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 huggingface-cli 下载（支持断点续传和校验）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pip install huggingface_hub&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;huggingface-cli download Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-dir /models/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-dir-use-symlinks False&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘空间不足&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查模型目录所在磁盘空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /models/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型文件大小参考：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Qwen3.5-35B-A3B-FP8: &amp;nbsp;~35 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Qwen3-Coder-30B-A3B-FP8: ~30 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 加上 tokenizer 和配置文件，预留 40-50 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理旧模型释放空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /models/*/ &amp;nbsp;| sort -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;safetensors 格式错误&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证 safetensors 文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;from safetensors import safe_open&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;try:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; with safe_open(&amp;#39;/models/Qwen3.5-35B-A3B-FP8/model-00001-of-00008.safetensors&amp;#39;, framework=&amp;#39;pt&amp;#39;) as f:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(&amp;#39;Keys:&amp;#39;, list(f.keys())[:5])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(&amp;#39;File is valid&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;except Exception as e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; print(f&amp;#39;File is corrupted: {e}&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.5 torch.cuda.OutOfMemoryError 具体处理&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是最常见的 CUDA 错误，具体处理流程：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 完整的排查流程脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== GPU Memory Status ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=index,memory.total,memory.used,memory.free --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== GPU Processes ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== vLLM Config Check ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep vllm | grep -v grep | sed&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/.*python/python/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Recent OOM Logs ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory\|out of memory\|OOM&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log | tail -5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; journalctl -u vllm --since&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1 hour ago&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory\|out of memory\|OOM&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== System Memory ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Recommendation ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU_USED=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits -i 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU_TOTAL=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits -i 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USAGE_PCT=$((GPU_USED * 100 / GPU_TOTAL))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$USAGE_PCT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 95 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU memory usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${USAGE_PCT}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;% - CRITICAL&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Suggestions:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;1. Reduce --max-num-seqs&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;2. Reduce --max-model-len&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;3. Reduce --gpu-memory-utilization&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;4. Use tensor parallelism (--tensor-parallel-size 2)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;elif&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$USAGE_PCT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 85 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU memory usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${USAGE_PCT}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;% - WARNING&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Consider reducing max-num-seqs by 20%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU memory usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${USAGE_PCT}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;% - OK&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 OOM 自动恢复脚本&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vllm_watchdog.sh - vLLM OOM 自动恢复 + 告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 部署方式：systemd service 或 supervisor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;VLLM_CMD=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.88 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 200 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 16384 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HEALTH_URL=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost:8000/health&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ALERT_WEBHOOK=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://alertmanager:9093/api/v1/alerts&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOG_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/log/vllm/watchdog.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MAX_RESTARTS=5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RESTART_COUNT=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;COOLDOWN=60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date &amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tee -a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;send_alert&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;severity=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;message=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; curl -s -X POST&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ALERT_WEBHOOK&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;[{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;labels\&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;alertname\&amp;quot;: \&amp;quot;VLLMWatchdog\&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;severity\&amp;quot;: \&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$severity&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;instance\&amp;quot;: \&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(hostname)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;annotations\&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;summary\&amp;quot;: \&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$message&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }]&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;ALERT [&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$severity&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$message&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;check_gpu_health&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 是否正常&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! nvidia-smi &amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU health check failed - nvidia-smi error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 温度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;temp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$temp&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 90 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU temperature too high:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${temp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;°C&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;critical&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU temperature&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${temp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;°C exceeds 90°C threshold&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;start_vllm&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Starting vLLM...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_CMD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log 2&amp;gt;&amp;amp;1 &amp;amp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; VLLM_PID=$!&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM started with PID&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 等待服务就绪（模型加载需要时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;wait_count=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;max_wait=300 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最多等 5 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$wait_count&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-lt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$max_wait&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HEALTH_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM service is ready&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wait_count=$((wait_count + 2))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM failed to start within&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${max_wait}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主循环&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== vLLM Watchdog Started ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 健康&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! check_gpu_health;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU unhealthy, waiting for recovery...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;continue&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动 vLLM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;start_vllm;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RESTART_COUNT=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;info&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM service started successfully&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查循环&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;!&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-0&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进程不存在了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM process&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is gone&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查是否 OOM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dmesg | tail -20 | grep -qi&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;oom.*&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\|killed.*&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OOM detected!&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;critical&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM OOM Killed, PID=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, restarting...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM exited unexpectedly&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;warning&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM process died, PID=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, restarting...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;break&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP 健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! curl -s --max-time 10&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HEALTH_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Health check failed, checking process...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! curl -s --max-time 10&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HEALTH_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Health check failed twice, killing vLLM&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;warning&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM health check failed, restarting...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-9&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;break&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重启次数限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; RESTART_COUNT=$((RESTART_COUNT + 1))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$RESTART_COUNT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-ge&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$MAX_RESTARTS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;critical&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM exceeded max restarts (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MAX_RESTARTS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;), giving up&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Max restarts reached, exiting watchdog&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Restarting in&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${COOLDOWN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$RESTART_COUNT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MAX_RESTARTS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$COOLDOWN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配套的 systemd service：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/systemd/system/vllm-watchdog.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Unit]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Description=vLLM Watchdog Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;After=network.target nvidia-persistenced.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Type=simple&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;User=root&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStart=/opt/scripts/vllm_watchdog.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Restart=on-failure&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RestartSec=30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StandardOutput=journal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StandardError=journal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Install]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl daemon-reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;vllm-watchdog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl start vllm-watchdog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl status vllm-watchdog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u vllm-watchdog -f&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 限流配置模板&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx rate_limit 完整模板&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/llm-gateway.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 限流配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $binary_remote_addr zone=per_ip:10m rate=30r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $api_key zone=per_key:10m rate=10r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_conn_zone $binary_remote_addr zone=per_ip_conn:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API Key 提取&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $http_authorization $api_key {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default &amp;quot;anonymous&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;~*Bearer\s+(.+)&amp;quot; $1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 请求大小限制（防止超长 prompt）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client_max_body_size 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream vllm_servers {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.10:8000 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8000 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 64;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name llm-api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/cert.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/key.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 全局超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 180s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # SSE 支持&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_buffering off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Chat Completions（最常用，重点限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/chat/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_ip burst=20 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_key burst=5 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn per_ip_conn 10; &amp;nbsp; &amp;nbsp;# 单 IP 最大 10 个并发连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;#39;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Completions&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_ip burst=20 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_key burst=5 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;#39;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Embeddings（计算量小，可以放宽）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/embeddings {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_ip burst=50 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Models list（不限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/models {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Health check（不限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /health {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 自定义 429 响应体（符合 OpenAI API 格式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_page 429 @rate_limited;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location @rate_limited {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 429 &amp;#39;{&amp;quot;error&amp;quot;:{&amp;quot;message&amp;quot;:&amp;quot;Rate limit exceeded. Please retry after a short wait.&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;rate_limit_error&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;rate_limit_exceeded&amp;quot;}}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 参数调优配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 中等负载配置（单卡 A100 80G，Qwen3.5-35B-A3B-FP8）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.88 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 200 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-batched-tokens 32768 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 16384 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 高吞吐配置（牺牲单请求延迟换总吞吐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.92 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 512 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-batched-tokens 65536 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 8192 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 低延迟配置（牺牲吞吐换单请求速度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.85 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 32 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-batched-tokens 8192 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 32768 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 超时参数调优配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三层超时的完整配置模板：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# client_config.py - Python 客户端最佳配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;httpx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 标准配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client = openai.OpenAI(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; base_url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;https://llm-api.example.com/v1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; api_key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;your-api-key&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=openai.Timeout(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connect=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http_client=httpx.Client(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limits=httpx.Limits(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_keepalive_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive_expiry=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 异步客户端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;async_client = openai.AsyncOpenAI(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; base_url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;https://llm-api.example.com/v1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; api_key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;your-api-key&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=openai.Timeout(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connect=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http_client=httpx.AsyncClient(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limits=httpx.Limits(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_keepalive_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive_expiry=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 带重试和降级的调用封装&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;time&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;logging&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logger = logging.getLogger(__name__)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;call_llm_with_fallback&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; messages: list,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model: str =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_tokens: int =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2048&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries: int =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; fallback_model: str =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Qwen/Qwen3-Coder-30B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-&amp;gt; str:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;带重试和降级的 LLM 调用&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; last_error =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;None&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;range(max_retries):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;try&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response = client.chat.completions.create(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=model,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; messages=messages,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=max_tokens,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeout=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;response.choices[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;].message.content&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.RateLimitError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 429 限流，等待后重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retry_after = int(e.response.headers.get(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Retry-After&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Rate limited, retry after&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{retry_after}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{attempt +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(retry_after)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.APITimeoutError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超时，指数退避重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wait_time =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;** attempt&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Timeout, retry after&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{wait_time}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{attempt +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(wait_time)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.APIConnectionError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接错误，快速重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Connection error, retry (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{attempt +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;):&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{e}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.InternalServerError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 500 错误，可能是 OOM，切换备用模型&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.error(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Server error:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{e}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;fallback_model&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;and&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;model != fallback_model:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.info(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Falling back to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{fallback_model}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model = fallback_model&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 所有重试失败&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; logger.error(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;All retries failed:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{last_error}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;raise&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;last_error&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.4 案例 1：生产环境 GPU OOM 完整排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;时间线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026年2月15日，周六凌晨 3 点，告警群收到：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] vLLM service down on gpu-server-03&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Process exited with code 137 (OOM Killed)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查过程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:05 - 登录服务器，确认服务状态&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssh gpu-server-03&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 没有 vLLM 进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 docker 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker ps -a | grep vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# STATUS: Exited (137) 3 minutes ago&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 确认是 OOM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect vllm-server --format=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{{.State.OOMKilled}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:08 - 查看系统日志确认 OOM 详情&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | tail -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [Sat Feb 15 02:58:32 2026] oom-kill: constraint=CONSTRAINT_MEMCG, ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [Sat Feb 15 02:58:32 2026] Memory cgroup out of memory: Killed process 28456 (python)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; total-vm:156789012kB, anon-rss:73400320kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 73GB RSS，容器限制是 72GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:10 - 查看 GPU 显存（此时 GPU 应该已释放）&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 0: A100 80GB, 0MiB / 81920MiB used&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正常，进程已经死了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:12 - 查看 vLLM 日志，找 OOM 前的线索&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server 2&amp;gt;&amp;amp;1 | tail -100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键日志：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:55:10] INFO: Received request cmpl-abc123, prompt_tokens=28672, max_tokens=4096&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:55:11] INFO: Received request cmpl-abc124, prompt_tokens=31000, max_tokens=2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:55:12] WARNING: Preempting 3 sequences due to insufficient KV cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:57:45] INFO: Received request cmpl-abc189, prompt_tokens=30500, max_tokens=8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:58:30] ERROR: torch.cuda.OutOfMemoryError: CUDA out of memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:58:31] CRITICAL: Fatal error, shutting down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:15 - 定位根因&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;凌晨 2:55-2:58 期间，大量超长 prompt 请求涌入。这些请求的 prompt 长度都在 28K-31K tokens，接近&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len=32768&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的上限。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看启动参数：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server 2&amp;gt;&amp;amp;1 | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-model-len 32768&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-num-seqs 256&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --gpu-memory-utilization 0.9&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题出在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len=32768&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs=256&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的组合。虽然平时大部分请求的 prompt 都在 2K-4K，KV Cache 足够。但凌晨有个批量任务在跑长文档摘要，prompt 长度 30K+，每个请求消耗的 KV Cache 是平时的 10 倍。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常请求 KV Cache: 2K tokens × 每 token 约 0.8MB = 1.6MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长文档请求 KV Cache: 30K tokens × 每 token 约 0.8MB = 24MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 总量: 54GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常情况 256 并发: 256 × 1.6MB = 410MB，绰绰有余&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长文档 30 并发: 30 × 24MB = 720MB，也没问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但如果 200 个长文档并发: 200 × 24MB = 4.8GB...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等等，不对。重新算：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Qwen3.5-35B-A3B-FP8，FP8 量化，KV Cache 每 token:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;= num_layers × 2 × num_heads × head_dim × 2 bytes(FP16 KV cache)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;= 64 × 2 × 8 × 128 × 2 = 262,144 bytes ≈ 0.25 MB/token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30K prompt: 30000 × 0.25MB = 7.5GB per request&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果同时来了 8 个这样的请求: 8 × 7.5 = 60GB &amp;gt; 54GB 可用 KV Cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因确认：批量长文档任务同时发起 8+ 个 30K token 的请求，KV Cache 总需求超过可用显存。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:25 - 修复和重启&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时方案：降低 max-model-len，限制单请求长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run -d \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpus&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;&amp;quot;device=0&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --memory=72g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --shm-size=8g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --name vllm-server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; vllm/vllm-openai:v0.7.6 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.9 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 200 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 16384 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 32768 降到 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证服务启动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sleep 120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正常返回模型列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:40 - 长期方案（第二天工作日处理）&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量任务改为排队执行，不并发&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关增加 prompt 长度检查，超过 16K 的走专用队列&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存限制从 72G 调到 96G&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加 KV Cache 水位监控告警&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5 案例 2：间歇性超时根因定位&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每天下午 2:00-2:30，API 超时率从 0.1% 飙到 15%。其他时间段正常。持续了一周。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查过程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一步，确认超时模式&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 Prometheus 拉数据，按小时统计超时率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;http://prometheus:9090/api/v1/query_range&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;query=sum(rate(vllm_request_failure_total{error=&amp;quot;timeout&amp;quot;}[5m])) / sum(rate(vllm_request_success_total[5m])) * 100&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;start=2026-03-06T00:00:00Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;end=2026-03-12T23:59:59Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;step=300&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| python -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认了每天 14:00-14:30 有明显的超时高峰。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二步，看这个时段的 GPU 指标&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;http://prometheus:9090/api/v1/query_range&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;query=nvidia_gpu_utilization{gpu=&amp;quot;0&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;start=2026-03-12T13:50:00Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;end=2026-03-12T14:40:00Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;step=30&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 利用率在 14:00 从 60% 突然飙到 100% 并持续 30 分钟。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三步，看请求量&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# QPS 变化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 14:00 之前：稳定 30 QPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 14:00-14:30：飙到 150 QPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 14:30 之后：回落到 30 QPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;QPS 突增 5 倍，GPU 被打满，正常请求排不上队导致超时。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四步，定位请求来源&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Nginx access log，按来源 IP 统计 14:00-14:30 的请求量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$4 ~ /12\/Mar\/2026:14:0/ || $4 ~ /12\/Mar\/2026:14:1/ || $4 ~ /12\/Mar\/2026:14:2/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/llm-access.log | \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| sort | uniq -c | sort -rn | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3847 10.0.2.55&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3201 10.0.2.56&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp;245 10.0.3.12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp;189 10.0.3.15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.0.2.55 和 10.0.2.56 贡献了超过 90% 的请求。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五步，找到元凶&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看这两个 IP 是什么服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nslookup 10.0.2.55&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-01.internal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nslookup 10.0.2.56&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-02.internal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是批量处理服务。查看它们的 crontab：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssh batch-worker-01&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;crontab -l&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 0 14 * * * /opt/scripts/daily_summary.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每天下午 2 点，两台批量处理服务器同时启动日报摘要任务，对 1000+ 篇文章做摘要，并发发送请求到 LLM 服务。瞬间打满了推理引擎。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量任务错峰执行&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 改 crontab，两台机器错开 30 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-01&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0 2 * * * /opt/scripts/daily_summary.sh &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 改到凌晨 2 点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-02&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30 2 * * * /opt/scripts/daily_summary.sh &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 改到凌晨 2:30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量任务增加并发限制和限速&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# daily_summary.py 增加限速&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;asyncio&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;aiohttp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CONCURRENCY =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最多 5 个并发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RATE_LIMIT =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每秒最多 10 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;semaphore = asyncio.Semaphore(CONCURRENCY)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;summarize_article&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(session, article)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;with&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;semaphore:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;await&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;asyncio.sleep(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/ RATE_LIMIT) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 简单限速&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;with&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;session.post(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://llm-api.example.com/v1/chat/completions&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; json={&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;model&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;messages&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: [{&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;role&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Summarize:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{article}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;max_tokens&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeout=aiohttp.ClientTimeout(total=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp.status ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;429&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retry_after = int(resp.headers.get(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Retry-After&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;await&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;asyncio.sleep(retry_after)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重试逻辑...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;await&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp.json()&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关增加批量任务专用限流&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 批量任务 IP 段单独限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;geo $is_batch_worker {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default 0;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 10.0.2.0/24 1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $is_batch_worker $batch_limit_key {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 0 &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 1 $binary_remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $batch_limit_key zone=batch_limit:1m rate=10r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /v1/chat/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req zone=batch_limit burst=5 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # ... 其他配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修复后超时率降到 0.05% 以下，连续跑了一个月没再出现。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 预防性配置清单&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署大模型服务前，过一遍这个清单：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# pre_deploy_check.sh - 部署前检查脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Pre-deployment Checklist ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. GPU 驱动版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[1] GPU Driver: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DRIVER=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -1)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[[ $(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;= 560&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| bc -l 2&amp;gt;/dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;) ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;]] || [[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;560&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;]];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;OK (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;FAIL (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt; 560)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. CUDA 版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[2] CUDA Version: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA=$(nvcc --version 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;release&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $5}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tr -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$CUDA&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 显存大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[3] GPU Memory: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=name,memory.total --format=csv,noheader&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. CPU 内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[4] System Memory: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;/Mem:/{print $2}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 磁盘空间（模型目录）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[5] Model Dir Space: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /models/ | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;NR==2{print $4, &amp;quot;available&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 6. 模型文件完整性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[6] Model Files: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MODEL_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/models/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MODEL_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/config.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;] &amp;amp;&amp;amp; [ -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MODEL_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/tokenizer.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; SAFETENSORS=$(ls&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MODEL_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/*.safetensors 2&amp;gt;/dev/null | wc -l)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;OK (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$SAFETENSORS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;safetensors files)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;FAIL (missing config/tokenizer)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 7. Docker 版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[7] Docker: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker --version 2&amp;gt;/dev/null | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 8. 网络端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[8] Port 8000: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ss -tlnp | grep -q&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;:8000&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;IN USE (conflict!)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Available&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 9. /dev/shm 大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[9] Shared Memory: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /dev/shm | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;NR==2{print $2}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 10. NUMA 拓扑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[10] NUMA Topology:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi topo -m 2&amp;gt;/dev/null | head -5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Check Complete ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 错误信息脱敏&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境的 API 不能把内部错误信息直接暴露给客户端。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Nginx 配置：拦截并替换错误响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://vllm_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 拦截 500 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_intercept_errors on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_page 500 502 503 504 @internal_error;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location @internal_error {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; return 500 &amp;#39;{&amp;quot;error&amp;quot;:{&amp;quot;message&amp;quot;:&amp;quot;Internal server error. Please retry later.&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;server_error&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;internal_error&amp;quot;}}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Python API 层面的错误脱敏&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;from&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;fastapi&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;FastAPI, HTTPException&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;from&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;fastapi.responses&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;traceback&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;logging&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;app = FastAPI()&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logger = logging.getLogger(__name__)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;@app.exception_handler(Exception)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;global_exception_handler&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(request, exc)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 内部记录完整错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; logger.error(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Unhandled exception:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{traceback.format_exc()}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 返回给客户端的脱敏信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;CUDA&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;str(exc)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;str(exc):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status_code=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;503&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content={&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Service temporarily unavailable. Please retry.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;server_error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;elif&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;str(exc).lower():&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status_code=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;504&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content={&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Request timeout. Please reduce input length or retry.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout_error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status_code=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content={&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Internal server error.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;server_error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 故障自愈机制&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;健康检查 + 自动重启 + 优雅降级的三层防护：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes 健康检查配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm/vllm-openai:v0.7.6&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--model&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--gpu-memory-utilization&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.88&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-num-seqs&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 存活探针：检测进程是否存活&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型加载需要时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续 3 次失败则重启&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 就绪探针：检测服务是否准备好接收流量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续 2 次失败则从 Service 摘除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动探针：加载模型的等待时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;startupProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最多等 60 + 30×10 = 360 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;96Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.4 Graceful Degradation 策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当主模型不可用时，自动切换到轻量级模型：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# graceful_degradation.py&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;time&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;logging&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;from&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dataclasses&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dataclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logger = logging.getLogger(__name__)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;@dataclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ModelEndpoint&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; name: str&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; url: str&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model: str&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; priority: int &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 越小优先级越高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_tokens: int&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; healthy: bool =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; last_check: float =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; failure_count: int =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ModelRouter&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;__init__&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.endpoints = [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ModelEndpoint(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;primary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://gpu-server-01:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; priority=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;4096&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ModelEndpoint(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;secondary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://gpu-server-02:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; priority=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;4096&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ModelEndpoint(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;fallback&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://gpu-server-03:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3-Coder-30B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; priority=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;get_healthy_endpoint&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-&amp;gt; ModelEndpoint:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;返回优先级最高的健康端点&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; healthy = [ep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;self.endpoints&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep.healthy]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;not&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;healthy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 所有端点都不健康，强制重试主端点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.critical(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;All endpoints unhealthy, forcing primary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.endpoints[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;].healthy =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;self.endpoints[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;sorted(healthy, key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;lambda&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;x: x.priority)[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mark_unhealthy&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self, endpoint: ModelEndpoint)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.healthy =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;False&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.failure_count +=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Marked&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{endpoint.name}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;as unhealthy (failures:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{endpoint.failure_count}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mark_healthy&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self, endpoint: ModelEndpoint)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.healthy =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.failure_count =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;health_check_all&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;定期健康检查，恢复已修复的端点&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;self.endpoints:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;try&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; resp = requests.get(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{ep.url}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/health&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, timeout=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp.status_code ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;not&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep.healthy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.info(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Endpoint&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{ep.name}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;recovered&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.mark_healthy(ep)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.mark_unhealthy(ep)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;Exception:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.mark_unhealthy(ep)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 常见错误汇总表&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误信息&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误码&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError: CUDA out of memory&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 gpu-memory-utilization / max-num-seqs / max-model-len&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: device-side assert triggered&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型权重损坏或数值异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新下载模型，用 CUDA_LAUNCH_BLOCKING=1 调试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: NCCL communicator was aborted&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多卡通信失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 NVLink/PCIe，增大 shm-size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 429 Too Many Requests&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;429&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求限流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加 rate limit 或 burst，客户端加重试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 503 Service Unavailable&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;503&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务不可用（加载中/崩溃）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查服务进程和日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 504 Gateway Timeout&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;504&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调大超时参数，检查 prompt 长度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connection refused&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务未启动或端口错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查进程状态和端口监听&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OSError: [Errno 28] No space left on device&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘空间不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理磁盘，扩容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ValueError: The model&amp;#39;s max seq len (X) is larger than...&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len 超过模型支持的上限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 max-model-len&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KeyError: &amp;#39;model&amp;#39;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;400&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体缺少 model 字段&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查客户端请求格式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Model not found: xxx&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;404&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型名不匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调用 /v1/models 确认模型名&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tokenizer initialization error&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tokenizer 文件缺失或损坏&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新下载 tokenizer.json 和 tokenizer_config.json&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AssertionError: assert googly_batch_size &amp;gt; 0&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 内部错误（batch 为空）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;升级 vLLM 版本，通常是已知 bug&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: expected scalar type Float but found Half&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;精度类型不匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指定 --dtype float16 或 --dtype bfloat16&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: no kernel image is available&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 架构不支持&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 GPU 是否是 Ampere+，更新 PyTorch&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 系统化排错决策树&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文字版决策树，从症状开始逐步定位根因：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用户报告&amp;quot;大模型服务异常&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 症状：请求返回错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 429 → 限流问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── 检查 Nginx 限流配置 → 调大 rate/burst&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── 检查 vLLM 队列 → 调大 max-num-seqs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── 检查 Token 配额 → 充值/调额度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 500/502/503 → 服务端错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── 进程存活？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; ├── 不存在 → 检查 OOM Kill (dmesg) → 调大内存/降低负载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; └── 存在 → 查 vLLM 日志 → 根据错误类型处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── 多个实例？检查负载均衡健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 504 → 超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── TTFB 大？→ TTFT 超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; ├── GPU 利用率 &amp;gt; 95%？→ 扩容或限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; ├── 等待队列长？→ 降低并发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; └── prompt 太长？→ 限制输入长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── Total 大但 TTFB 正常？→ TPS 低&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── GPU 温度 &amp;gt; 83°C？→ 散热问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; &amp;nbsp; &amp;nbsp; └── KV Cache swap？→ 降低 max-num-seqs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 连接拒绝 → 服务未启动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── 端口监听？→ ss -tlnp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── 防火墙？→ iptables -L&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 模型加载中？→ 看启动日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 症状：请求变慢（没报错但延迟高）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── 全部请求都慢 → 全局问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── GPU 利用率 → 负载过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── segment compaction → 等待完成&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── 内存 swap → 加内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 部分请求慢 → 个别请求问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── 长 prompt → 正常现象，优化 prefill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 特定用户 → 检查是否触发限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 症状：服务进程消失&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── Exit code 137 → OOM Killed&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; │ &amp;nbsp; ├── 容器 OOM → 调大 memory limit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; │ &amp;nbsp; └── 系统 OOM → 加内存/加 swap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── Exit code 134 → SIGABRT (assertion)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; │ &amp;nbsp; └── CUDA error → 检查 GPU 状态和驱动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; └── Exit code 139 → SIGSEGV (段错误)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 通常是 bug → 升级版本，提交 issue&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 日志关键字速查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 vLLM 日志中 grep 这些关键字可以快速定位问题类型：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OOM 相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory\|out of memory\|OOM\|oom_kill&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CUDA 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;CUDA error\|cuda.*error\|RuntimeError.*CUDA&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超时相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout\|timed out\|deadline exceeded&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 限流相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;rate limit\|too many\|queue full\|preempting&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型加载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;loading model\|model loaded\|weight.*load\|safetensors&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# KV Cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;cache.*block\|kv cache\|cache_usage\|swap&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# NCCL（多卡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NCCL\|nccl\|communicator\|all_reduce&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进程退出&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;fatal\|shutting down\|exit\|signal\|killed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每个关键字对应的问题域：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;关键字&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题域&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;紧急程度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OutOfMemory&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU/CPU 内存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高 - 服务可能崩溃&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高 - 需要重启&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;timeout&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中 - 影响用户体验&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;preempting&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 不足，抢占&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中 - 部分请求被中断&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;queue full&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;并发过高&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中 - 新请求被拒绝&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NCCL&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多卡通信&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高 - 可能导致卡死&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;swap&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 换出到 CPU&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低 - 性能下降但不影响正确性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 监控指标和告警配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 Prometheus 监控指标&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 0.7.x 暴露的关键 metrics（通过 /metrics 端点）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 请求延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;histogram_quantile(0.99, sum(rate(vllm:e2e_request_latency_seconds_bucket[5m])) by (le))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TTFT（Time To First Token）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;histogram_quantile(0.99, sum(rate(vllm:time_to_first_token_seconds_bucket[5m])) by (le))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TPS（Time Per Output Token）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;histogram_quantile(0.50, sum(rate(vllm:time_per_output_token_seconds_bucket[5m])) by (le))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# GPU 缓存使用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:gpu_cache_usage_perc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# CPU 缓存使用率（swap）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:cpu_cache_usage_perc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 等待队列长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:num_requests_waiting&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 正在处理的请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:num_requests_running&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 请求成功/失败计数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:request_success_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:request_failure_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Prompt Token 吞吐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:prompt_tokens_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Generation Token 吞吐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:generation_tokens_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.2 Prometheus 告警规则&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/prometheus/rules/vllm_alerts.yml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm_critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU OOM 风险&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMGPUCacheNearFull&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm:gpu_cache_usage_perc&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.95&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU KV Cache 使用率超过 95%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;实例&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.instance }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，当前使用率&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，即将 OOM&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;runbook:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;降低 max-num-seqs 或重启服务&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 服务不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMServiceDown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;up{job=&amp;quot;vllm&amp;quot;}&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;1m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM 服务不可用&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;实例&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.instance }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;已经 1 分钟无法访问&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求失败率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMHighErrorRate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum(rate(vllm:request_failure_total[5m]))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (sum(rate(vllm:request_success_total[5m])) + sum(rate(vllm:request_failure_total[5m])))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; 0.05&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM 请求失败率超过 5%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前失败率&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm_warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TTFT 过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMHighTTFT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;histogram_quantile(0.99,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;sum(rate(vllm:time_to_first_token_seconds_bucket[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(le))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;TTFT P99 超过 5 秒&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前 TTFT P99:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 等待队列过长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMQueueBacklog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm:num_requests_waiting&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;3m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;等待队列积压超过 50 个请求&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前等待:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，考虑扩容或限流&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 温度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;GPUTemperatureHigh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nvidia_smi_temperature_gpu&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;83&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU 温度超过 83°C&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.gpu }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;°C，可能触发降频&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# KV Cache swap 发生&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMKVCacheSwap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm:cpu_cache_usage_perc&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;检测到 KV Cache swap 到 CPU&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;CPU cache 使用率:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，TPS 会下降&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# E2E 延迟过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMHighLatency&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;histogram_quantile(0.99,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;sum(rate(vllm:e2e_request_latency_seconds_bucket[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(le))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;端到端 P99 延迟超过 30 秒&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前 P99:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.3 Grafana Dashboard 面板建议&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐创建以下面板（按行排列）：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一行：概览&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务状态（Up/Down 指示灯）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当前 QPS（实时数字）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求成功率（百分比）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等待队列长度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二行：延迟&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFT P50/P95/P99 时序图&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;E2E Latency P50/P95/P99 时序图&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每请求 Token 输出速度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三行：资源&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存使用率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU KV Cache 使用率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 利用率和温度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU 内存使用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四行：吞吐&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prompt Tokens/s&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Generation Tokens/s&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Running requests vs Waiting requests&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务的故障 80% 集中在超时、限流、OOM 三类。系统化的排错方法比经验更可靠——从症状出发，逐层排查，到根因止步&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时问题要分清是 TTFT 慢（prefill 阶段）还是 TPS 低（decode 阶段）还是连接超时（网络层），三者的排查路径完全不同&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU OOM 的根因通常是 max-num-seqs、max-model-len、gpu-memory-utilization 三个参数的组合不合理。不要凭感觉调，用公式算出 KV Cache 的实际需求&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限流配置要分层：Nginx 做第一层粗粒度限流，vLLM 的 max-num-seqs 做第二层保护，客户端做重试和降级。三层配合才能既保护服务又不影响用户&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器环境的 OOM Killed 和 GPU OOM 是两回事：前者是 CPU 内存不够（cgroup limit），后者是显存不够。区分清楚才能对症下药&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防大于治疗：部署前过检查清单，运行时盯核心监控，故障时靠自愈机制兜底&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 源码分析&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：了解 PagedAttention、Continuous Batching、Speculative Decoding 的实现原理，有助于理解性能瓶颈的本质。推荐从&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm/core/scheduler.py&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;开始读。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 性能调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：CUDA Profiler（nsys/ncu）的使用、kernel 级别的性能分析。这块对排查&amp;quot;GPU 利用率高但吞吐上不去&amp;quot;的问题很有帮助。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分布式推理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Pipeline Parallelism、Tensor Parallelism、Expert Parallelism 的运维差异，多机多卡环境下 NCCL 的故障排查。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 官方文档 - 配置参数和 API 参考&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM GitHub - Issue tracker 是排查已知 bug 的好地方&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NVIDIA GPU 故障排查指南 - CUDA 错误排查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NCCL 官方文档 - 多卡通信故障排查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prometheus Alerting Rules - 告警规则语法参考&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 报错速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;错误码/信息 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 原因 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 解决方案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;─────────────────────────────────────────────────────────────────────────────────────────────&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 429 Too Many Requests &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 请求速率超过限流配置 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 调大 rate limit 或 burst&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 500 Internal Server Error &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 服务端内部错误 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 查看 vLLM 日志定位具体错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 502 Bad Gateway &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 后端服务不可用 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查 vLLM 进程是否存活&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 503 Service Unavailable &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 服务过载或维护中 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查负载和健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 504 Gateway Timeout &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 请求处理超时 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 调大超时参数或降低 prompt 长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ GPU 显存不足 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 降低 gpu-memory-utilization/max-num-seqs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ CUDA 内存分配失败 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 重启进程，调整显存参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: device-side assert triggered &amp;nbsp; &amp;nbsp; &amp;nbsp; → GPU 计算异常 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查模型文件，用 BF16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: NCCL communicator was aborted &amp;nbsp; &amp;nbsp;→ 多卡通信断开 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查 GPU 拓扑和 shm-size&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OSError: No space left on device &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 磁盘满 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 清理日志和临时文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ConnectionRefusedError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 服务未启动 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查进程和端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ValueError: max_model_len too large &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 上下文长度超过模型支持 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 降低 max-model-len&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM Killed (exit code 137) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 容器/系统内存限制 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 调大 memory limit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SIGABRT (exit code 134) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 致命 assertion 失败 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 查日志，通常是 CUDA/NCCL 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KeyError: &amp;#39;choices&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 响应格式异常 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 服务端可能返回了错误，检查完整响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;asyncio.TimeoutError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 客户端异步超时 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 调大 aiohttp/httpx timeout&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl.SSLError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → TLS 证书问题 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查证书有效期和配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. vLLM 关键参数速查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--model &amp;lt;path_or_name&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型路径或 HuggingFace 名称&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--dtype auto|float16|bfloat16 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推理精度，auto 自动选择&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--quantization fp8|awq|gptq &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 量化方式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最大上下文长度（prompt + generation）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--trust-remote-code &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许执行模型仓库中的自定义代码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 显存和缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization &amp;lt;0-1&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 显存使用比例（默认 0.9）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--swap-space &amp;lt;GB&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CPU swap 空间大小（默认 4）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--kv-cache-dtype auto|fp8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# KV Cache 精度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 并发和调度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最大并发序列数（默认 256）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-batched-tokens &amp;lt;int&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每个 batch 最大 token 数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用分块预填充（推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-paddings &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最大 padding 数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 多卡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 张量并行度（用多少张卡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--pipeline-parallel-size &amp;lt;int&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 流水线并行度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--host &amp;lt;ip&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监听地址（默认 localhost）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--port &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监听端口（默认 8000）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--request-timeout &amp;lt;seconds&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 单请求超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不记录每个请求（生产环境推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-metrics &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用 Prometheus metrics（默认启用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用参数组合速查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 小模型（&amp;lt; 10B），单卡，追求低延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization 0.85 --max-num-seqs 32 --max-model-len 32768&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 中模型（10-30B），单卡 A100 80G，平衡配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization 0.88 --max-num-seqs 128 --max-model-len 16384 --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大模型（30-70B），双卡 A100 80G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size 2 --gpu-memory-utilization 0.9 --max-num-seqs 200 --max-model-len 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超大模型（&amp;gt; 70B），4 卡 A100 80G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size 4 --gpu-memory-utilization 0.92 --max-num-seqs 256 --max-model-len 8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606240958585304550.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;622&quot; height=&quot;208&quot; style=&quot;width: 622px; height: 208px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Fri, 10 Apr 2026 09:57:30 +0800</pubDate></item><item><title>运维必备：OpenClaw Workspace 实战手册</title><link>https://www.docker.top/?id=463</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606241004508987284.jpg&quot; alt=&quot;84e39e76a92f4dd348c508775d0f2da6.jpg&quot; width=&quot;764&quot; height=&quot;432&quot; style=&quot;width: 764px; height: 432px;&quot;/&gt;&lt;/section&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;前言&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文档从运维工程师视角出发，系统阐述 OpenClaw Workspace 的生产环境部署、配置管理、故障诊断、安全加固和自动化运维实践。所有内容基于 OpenClaw 官方文档和实际生产经验，面向具备基础操作能力的运维人员。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文与《OpenClaw 进阶配置与自动化运维实战手册》形成互补：前者侧重 Gateway、渠道和 Cron 等系统级配置，后者聚焦 Workspace 这一 Agent 运行环境的规划与运维。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;第一章：Workspace 概念再定义——运维视角&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 配置文件体系与内容文件体系的分离&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;OpenClaw 的 Workspace 本质上是将 Agent 的运行环境拆分为两个正交体系：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件体系&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;（静态定义）&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;~/.openclaw/openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;，系统宪法，定义 Gateway 行为和 Agent 运行时参数&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;AGENTS.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：工作手册，定义任务执行流程、安全边界、输出规范&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;SOUL.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：性格配置，定义 Agent 响应风格和交互模式&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;IDENTITY.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：身份元数据，定义名称、头像、视觉标识&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;TOOLS.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：工具权限，定义允许使用的工具及其使用策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内容文件体系&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;（动态数据）&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;USER.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：用户档案，包含用户偏好、历史交互摘要&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;memory/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：长期记忆目录，包含结构化日志、项目状态、教训记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Session 历史：每次对话的上下文记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;理解这一分离架构是 Workspace 运维的基础。配置文件决定 Agent 能做什么、怎么做；内容文件决定 Agent 知道什么、记得什么。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.2 Workspace 在生产环境中的角色&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在生产部署场景下，Workspace 承担以下核心职责：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境隔离&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：每个 Agent 实例拥有独立的 Workspace，避免配置和记忆污染。生产环境建议为不同用途的 Agent（主助手、专项任务、自动化任务）分配独立 Workspace。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;状态持久化&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：通过 memoryFlush 机制，Agent 的重要记忆会持久化到文件系统。Workspace 的备份策略直接影响 Agent 的长期记忆完整性。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置载体&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Workspace 内的配置文件定义了 Agent 的行为规范。修改 Workspace 配置比修改全局&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;更轻量，适合快速切换 Agent 行为模式。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计追踪&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Workspace 的变更历史可以纳入 Git 版本控制，实现配置的可审计和可回滚。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 Workspace 路径与加载机制&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认 Workspace 位置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径优先级&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 配置中显式指定的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;路径（最高优先级）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;agents.defaults.workspace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;配置项&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（默认）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证 Workspace 路径&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前 Agent 的 Workspace 路径&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动时指定 Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway start --workspace /path/to/custom/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;目录存在性要求&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 启动时，如果指定的 Workspace 目录不存在，会自动创建。因此首次启动时会看到 memory/、logs/ 等子目录被初始化。如果目录存在但无内容，Gateway 会执行 bootstrap 流程，生成默认的配置文件。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二章：Workspace 目录结构与生产环境规划&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 标准目录布局&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境的 Workspace 应采用规范的目录结构，便于维护和自动化管理：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── openclaw.json &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 全局系统配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── workspace-main/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主 Agent Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── AGENTS.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工作手册&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── SOUL.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 性格配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── USER.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户档案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── IDENTITY.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 身份标识&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── TOOLS.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工具权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── memory/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 长期记忆&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── projects.md &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 项目状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── infra.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 基础设施配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── lessons.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 踩坑教训&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── YYYY-MM-DD.md &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志归档&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── sessions/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Session 历史（可选）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── workspace-dev/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 开发专用 Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── workspace-work/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工作任务 Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── cron/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Cron 任务配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── logs/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gateway 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 多环境 Workspace 隔离策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境划分原则&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用途&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置倾向&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险等级&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace-main&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主力助手，日常对话&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保守，稳定优先&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace-dev&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开发测试，新功能验证&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;激进，可快速迭代&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace-work&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;专项任务自动化&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中等，根据任务调整&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, default: true, workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;dev&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-dev&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;work&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-work&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 备份策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份范围&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 备份应覆盖以下内容：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有配置文件（AGENTS.md、SOUL.md、USER.md、IDENTITY.md、TOOLS.md）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录下的所有记忆文件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可选：sessions/ 目录（包含完整对话历史）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份频率建议&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内容类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份频率&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保留周期&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每日增量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每次变更后&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;90 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每周&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份脚本示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# workspace-backup.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/backups/openclaw/workspace&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw/workspace-main&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TIMESTAMP=$(date +%Y%m%d-%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建备份目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/config-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TIMESTAMP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/AGENTS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/SOUL.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/USER.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/IDENTITY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/TOOLS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份记忆目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TIMESTAMP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -C&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理旧备份（保留 30 天）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*.tar.gz&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-mtime +30 -delete&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 磁盘空间管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 长期运行后，memory/ 目录可能膨胀。需要监控以下指标：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Workspace 目录大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 memory/ 目录大小分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/memory/*&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 sessions/ 目录大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/sessions/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘告警阈值&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 单目录超过 100MB：告警&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/ 单目录超过 500MB：考虑归档或清理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 根目录超过 1GB：全面检查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三章：核心文件分类解析&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 openclaw.json——系统宪法&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是全局配置文件，位于&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，采用 JSON5 格式。该文件在 Gateway 启动时加载，定义了整个系统的运行参数。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;核心配置项&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // Agent 默认配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; model: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; primary: &amp;quot;provider/claude-sonnet-4-20250514&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fallbacks: [&amp;quot;provider/claude-haiku-4-20250514&amp;quot;],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; timeoutSeconds: 600,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compaction: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reserveTokensFloor: 20000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memoryFlush: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; softThresholdTokens: 4000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; heartbeat: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; every: &amp;quot;30m&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; activeHours: { start: &amp;quot;08:00&amp;quot;, end: &amp;quot;23:00&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // Gateway 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gateway: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; port: 18789,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; bind: &amp;quot;loopback&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auth: { mode: &amp;quot;token&amp;quot;, token: &amp;quot;your-secret-token&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; reload: { mode: &amp;quot;hybrid&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 渠道配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; channels: {},&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 日志配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; logging: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; level: &amp;quot;info&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; file: &amp;quot;/var/log/openclaw/gateway.log&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 向量检索配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; memorySearch: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; provider: &amp;quot;openai&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; remote: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;https://api.siliconflow.cn/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; apiKey: &amp;quot;your-api-key&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model: &amp;quot;BAAI/bge-m3&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Schema 验证机制&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 采用严格 Schema 验证。未知配置键或类型错误会导致 Gateway 启动失败。验证命令：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw doctor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;该命令执行完整的配置文件检查，包括 JSON5 语法、必填项、API Key 格式等。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置路径访问&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置采用点号分隔路径，如&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;agents.defaults.compaction.reserveTokensFloor&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。可通过 CLI 查询：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get gateway.port&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 AGENTS.md——工作规则&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AGENTS.md 是 Workspace 的工作手册，定义了 Agent 的任务执行流程、安全边界和输出规范。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工作手册&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 职责范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负责：主要职责描述&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不负责：明确排除的职责&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 任务执行流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接收任务请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;评估任务复杂度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;规划执行步骤&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;执行并验证结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;返回执行摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 安全边界&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 禁止操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;禁止执行未经确认的删除操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;禁止在生产环境直接修改配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;禁止透露系统内部架构&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 确认流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高风险操作需要用户确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;涉及数据修改的操作需展示影响范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不可逆操作需二次确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 输出规范&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术文档使用 Markdown 格式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码块需标注语言&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表格用于结构化数据展示&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;结论需独立可读&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运维要点&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AGENTS.md 的变更会触发 Gateway 热重载（hybrid 模式下），无需重启进程。但热重载可能有短暂延迟，建议变更后执行&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;确认生效。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 SOUL.md——性格配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOUL.md 定义 Agent 的响应风格和交互模式，影响对话的自然度和一致性。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 性格配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 响应风格&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;简洁优先，避免冗余&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术讨论注重逻辑和证据&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;复杂问题分步骤解释&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误反馈直接指出问题所在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 专业领域&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DevOps 实践：Ansible、CI/CD、容器化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控系统：Prometheus、Grafana&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志分析：ELK、Loki&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;云原生：Kubernetes、Helm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 沟通偏好&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用中文交流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术术语配简要解释&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;建议用表格或列表展示对比&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码示例包含注释说明&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与 openclaw.json 的区别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOUL.md 定义的是&amp;quot;软性&amp;quot;行为规范，依赖 AI 模型理解执行；openclaw.json 定义的是&amp;quot;硬性&amp;quot;运行时参数，由系统强制执行。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.4 USER.md——用户档案&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USER.md 存储用户的基本信息、偏好设置和历史交互摘要。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 用户档案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 基本信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;姓名：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;时区：Asia/Shanghai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主要语言：中文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;角色：运维工程师&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 技术偏好&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;熟悉系统：Linux、Docker、Kubernetes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用工具：Ansible、Terraform、Prometheus&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码风格：注重可维护性，有注释习惯&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 偏好设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通知时段：工作日 09:00-22:00&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;输出格式：结构化，优先使用表格&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认阈值：高风险操作需明确确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 历史交互摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026-01：完成监控系统重构&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026-02：优化 CI/CD 流水线&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当前项目：微服务容器化迁移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运维注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USER.md 的变更应记录在 memory/ 中，便于后续审计。避免在 USER.md 中存储敏感信息（如密码、密钥），此类内容应放在 openclaw.json 的环境变量或外部密钥管理系统中。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5 TOOLS.md——工具权限&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md 定义 Agent 可使用的工具及其使用策略，是安全加固的重要环节。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工具权限配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 可用工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 读取类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Read：读取文件内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Glob：按模式搜索文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Grep：搜索文件内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Bash（受限）：执行指定命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 写入类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Write：创建或覆写文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Edit：修改文件局部内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 执行类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Bash：执行 shell 命令（需白名单）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 使用限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 禁止执行的命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf /（任何递归删除）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dd（直接磁盘操作）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkfs（格式化操作）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修改 /etc/passwd、/etc/shadow&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 需要确认的命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart/reload/stop&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除文件超过 1MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;创建系统用户或修改系统配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 仅隔离会话可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apt-get/yum install&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker pull/push&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete（生产环境）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 白名单示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;允许执行的命令（完全信任）：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git pull/push/clone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker ps/docker images&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get/describe（仅查询）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl（仅 HTTP GET）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要确认的命令：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ansible-playbook&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全建议&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境应限制 Bash 工具的权限，仅在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sandbox&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;Workspace 中启用完全权限。main Workspace 应使用受限模式。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.6 IDENTITY.md——身份元数据&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;IDENTITY.md 定义 Agent 的视觉身份，包括名称、头像和对外展示的信息。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 身份配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 基本信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;名称：运维助手&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文名：OpsAssistant&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;头像：默认头像（暂不自定义）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 功能标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化运维&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障诊断&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 对外展示&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;介绍文本：专注于运维自动化的 AI 助手&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;专长：服务器管理、监控告警、日志分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.7 memory/——长期记忆运维&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录是 Agent 的长期记忆存储中枢，采用分层结构设计。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;目录结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── projects.md &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 项目状态索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── infra.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 基础设施配置速查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── lessons.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 踩坑教训记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── YYYY-MM-DD.md &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每日日志归档&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;各文件用途&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用途&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更新频率&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;projects.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;各项目当前状态与待办&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目有进展时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;infra.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务器、API、部署配置速查&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置变更时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;lessons.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;踩坑记录，按严重程度分级&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;踩坑后&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;YYYY-MM-DD.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每日原始记录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每日或多日&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEMORY.md 入口设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录应包含&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEMORY.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;作为入口索引：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 记忆索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 用户核心信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;详见：../USER.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 项目索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目A：projects.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-6vfkns&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;9bec&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#project&lt;/a&gt;-a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目B：projects.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-zgg8dg&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;de08&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#project&lt;/a&gt;-b&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 最近重要上下文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026-03：完成监控系统重构，详见 2026-03.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当前主要任务：微服务容器化迁移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 教训索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署相关：lessons.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-f6rpi4&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;8ca4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#deploy&lt;/a&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置相关：lessons.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-3ivfvu&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;e27c&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#config&lt;/a&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 基础设施&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;详见：infra.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四章：记忆系统运维——builtin 与 qmd 方案对比&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 两种方案概述&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 支持两种记忆实现方案：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;builtin 方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 Agent 自己维护的文件系统（memory/ 目录）作为记忆存储。Agent 通过 memoryFlush 将对话中的重要信息写入文件。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;qmd 方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（量子记忆驱动？）：将记忆存储为结构化的 QMD 格式文件，提供更强的语义组织和检索能力。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 选型依据&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;维度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;builtin&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;qmd&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现复杂度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检索能力&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;依赖 memorySearch 向量检索&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更强的语义组织&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;维护成本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 自动维护&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要定期结构化整理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;个人助手、小型团队&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;知识密集型场景&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐选择&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;个人使用或小规模场景：builtin 方案足够&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;企业知识管理、复杂检索需求：qmd 方案&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.3 记忆污染处理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆污染指 Agent 的记忆中出现错误、过时或矛盾的信息，影响后续对话质量。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;污染症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 给出的信息与实际配置不符&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重复提示已解决的问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆中的项目状态与现实不一致&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查记忆文件的最后修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查特定记忆文件的内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/memory/projects.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 识别污染源（查看日志或对话历史）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/memory/2026-03-20.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 修正或删除污染内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 直接编辑相关文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 验证修正效果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memoryFlush 生成的记忆内容应定期复核&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重大变更后主动更新记忆文件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保持 MEMORY.md 索引的准确性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.4 清理策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定期清理触发条件&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单个日志文件超过 100KB&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录总大小超过 500MB&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目状态文件超过 6 个月未更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理执行流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 评估清理必要性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 归档旧日志（按年度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p ~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mv ~/.openclaw/workspace-main/memory/2025-*.md \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 压缩归档文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf ~/.openclaw/workspace-main/memory/archive-2025.tar.gz \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; ~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 删除已归档的原始文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf ~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 更新 MEMORY.md 索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化清理 Cron 任务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;name&amp;quot;: &amp;quot;记忆目录清理&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;schedule&amp;quot;: { &amp;quot;kind&amp;quot;: &amp;quot;every&amp;quot;, &amp;quot;everyMs&amp;quot;: 604800000 },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;payload&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;kind&amp;quot;: &amp;quot;agentTurn&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;message&amp;quot;: &amp;quot;检查 memory/ 目录大小。如果超过 500MB，执行以下清理：\n1. 将超过 6 个月的日志归档到 archive/\n2. 压缩归档文件\n3. 删除原始日志\n4. 更新 MEMORY.md 索引&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;sessionTarget&amp;quot;: &amp;quot;isolated&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;delivery&amp;quot;: { &amp;quot;mode&amp;quot;: &amp;quot;none&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五章：多 Agent 架构设计与资源隔离&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 Workspace 独立原则&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境中，不同用途的 Agent 应使用独立的 Workspace，实现配置隔离、记忆隔离和故障隔离。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离级别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;级别&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离内容&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;完全隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;独立 Workspace、独立端口&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不同业务线&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;共享 Gateway，独立 Workspace&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同业务线不同角色&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;会话隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;共享 Workspace，独立 session&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;临时任务&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, default: true, workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;dev&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-dev&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;ops&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-ops&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 共享与专属配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;共享配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（在 openclaw.json 中统一设置）：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 端口和认证&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;渠道配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志级别&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;向量检索配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;专属配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（在各 Workspace 的文件中设置）：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AGENTS.md：工作流程&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOUL.md：性格偏好&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md：工具权限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置继承&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 配置会合并 openclaw.json 的 defaults 和自身的显式配置。显式配置优先于 defaults。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看某 Agent 的最终配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get --agent dev agents.defaults.workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 权限边界&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 间权限隔离&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每个 Agent 的 Workspace 目录权限应限制为仅该 Agent 可读写：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置 Workspace 权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod -R 700 ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw:openclaw ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不同 Workspace 使用不同系统用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw-main:openclaw-main ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw-dev:openclaw-dev ~/.openclaw/workspace-dev/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;工具权限边界&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md 中定义的工具权限仅在该 Workspace 内有效。跨 Agent 调用工具时，各自受各自 TOOLS.md 的约束。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.4 多 Agent 场景下的资源分配&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型资源分配&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, model: { primary: &amp;quot;claude-opus-4-20250514&amp;quot; } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;dev&amp;quot;, model: { primary: &amp;quot;claude-sonnet-4-20250514&amp;quot; } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;batch&amp;quot;, model: { primary: &amp;quot;claude-haiku-4-20250514&amp;quot; } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Token 预算分配&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过 compaction 配置控制各 Agent 的上下文消耗：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compaction: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reserveTokensFloor: 20000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, compaction: { reserveTokensFloor: 25000 } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;batch&amp;quot;, compaction: { reserveTokensFloor: 10000 } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第六章：Skill 体系运维&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 Skill 加载层级&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 的 Skill 体系支持多层级加载，从低到高依次为：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;层级一：系统级 Skill&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;位置：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/skills/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;范围：全局生效，所有 Agent 共享&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;层级二：Workspace 级 Skill&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;位置：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-&amp;lt;name&amp;gt;/skills/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;范围：仅在该 Workspace 内生效&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;层级三：会话级 Skill&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;随对话上下文动态加载，不持久化&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加载优先级&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：会话级 &amp;gt; Workspace 级 &amp;gt; 系统级（高优先级覆盖低优先级）&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 故障定位&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 不生效的排查流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 确认 Skill 文件存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/skills/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/skills/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 Skill 文件语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/skills/my-skill.md | head -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 验证 Skill 是否被加载（查看日志）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;skill\|load&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试 Skill 是否可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在对话中触发 Skill 关键字，观察响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见问题&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 文件格式错误：Skill 定义不符合规范，被静默忽略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径问题：Skill 放置在错误的目录层级&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限问题：Skill 文件不可读&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 版本管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 版本跟踪&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;建议在 Skill 文件顶部添加版本信息：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;name: 运维工具集&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;version: 2026.03.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;author: OpsTeam&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;lastUpdated: 2026-03-15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;---&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 运维工具集 Skill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 功能列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 更新流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在测试环境验证新版本 Skill&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份当前版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;替换 Skill 文件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证生效&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记录变更日志&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 回滚&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份当前版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp ~/.openclaw/skills/my-skill.md \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/skills/my-skill.md.backup-$(date +%Y%m%d)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 回滚到指定版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp ~/.openclaw/skills/my-skill.md.backup-20260315 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/skills/my-skill.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第七章：故障诊断与排查清单&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.1 配置不生效&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：修改 AGENTS.md、SOUL.md 等 Workspace 配置文件后，Agent 行为未改变。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 确认文件已保存且内容正确&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/AGENTS.md | head -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查文件修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/AGENTS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 触发热重载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 等待 10 秒后测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 向 Agent 发送测试消息，观察行为&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 查看日志确认重载完成&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;reload\|AGENTS&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件编码问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确保 UTF-8 编码&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;语法错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新检查 Markdown 格式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存未刷新&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;执行&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置路径错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认文件在正确的 Workspace 内&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.2 权限问题&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Agent 无法读取配置文件、无法写入记忆文件、无法执行工具。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查文件权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -ld ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 测试文件可读性（以运行用户身份）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo -u openclaw cat ~/.openclaw/workspace-main/AGENTS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试文件可写性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo -u openclaw touch ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-write&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo -u openclaw rm ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-write&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查 Tool 执行权限（TOOLS.md）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/TOOLS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限修复&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修复 Workspace 权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw:openclaw ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod -R 600 ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700 ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修复特定目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700 ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700 ~/.openclaw/workspace-main/sessions/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.3 记忆失效&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Agent 无法回忆起之前对话中提到的信息，或 memoryFlush 未正常工作。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查 memoryFlush 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.compaction.memoryFlush&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查记忆文件是否存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查记忆文件最后修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/memory/*.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试 memorySearch 功能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 向 Agent 询问需要检索历史记忆的问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 查看 memoryFlush 触发日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;memoryFlush\|compaction&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置修复&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compaction: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reserveTokensFloor: 20000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memoryFlush: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; softThresholdTokens: 4000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.4 性能问题&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Agent 响应缓慢、timeout 频发、资源占用过高。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查系统资源使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway status --deep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查进程状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 查看 Gateway 日志中的性能相关警告&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout\|slow\|performance&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查 Token 消耗&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.compaction.reserveTokensFloor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查 memory/ 目录大小（可能导致加载缓慢）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;性能优化建议&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;reserveTokensFloor&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;减少 compaction 频率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开启&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memoryFlush&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;避免重要信息在 compaction 中丢失&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定期清理 memory/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;考虑升级模型或增加 timeout 配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.5 故障排查清单汇总&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;首要检查项&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;快速修复命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置不生效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件存在性、语法正确性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件/目录权限、所有关系&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw:openclaw&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆失效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memoryFlush 配置、文件存在&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启用 memoryFlush&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;工具不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md 配置、工具开关&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查白名单&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;性能下降&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统资源、memory/ 大小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理 memory/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;会话丢失&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;compaction 触发、session 存储&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 sessions/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 不加载&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 文件路径、语法正确&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新部署 Skill&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;向量检索失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memorySearch 配置、API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查网络和 API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第八章：备份、迁移与版本控制&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8.1 Workspace Git 化管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将 Workspace 纳入 Git 版本控制，实现配置变更的可追溯和可回滚。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;初始化 Git 仓库&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;~/.openclaw/workspace-main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git init&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git add AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git add memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git commit -m&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Initial workspace commit&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.gitignore 配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除会话历史（太大且不需要版本控制）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除临时文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;*.tmp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;*.bak&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除归档&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除敏感配置（如有）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# *.local.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分支策略&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;main&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：稳定版本，生产环境使用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dev&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：开发测试分支&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;feature/*&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：新功能开发分支&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建开发分支&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git checkout -b dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 开发测试完成后合并到 main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git checkout main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git merge dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8.2 配置迁移流程&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景一：从开发环境迁移到生产环境&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 在开发环境打包配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;~/.openclaw/workspace-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf /tmp/workspace-dev-config.tar.gz \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 传输到生产环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;scp /tmp/workspace-dev-config.tar.gz prod-server:/tmp/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 在生产环境解压（先备份现有配置）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;~/.openclaw/workspace-main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mv AGENTS.md AGENTS.md.backup-$(date +%Y%m%d)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf /tmp/workspace-dev-config.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 验证迁移结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw doctor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景二：多环境同步配置模板&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置同步脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TEMPLATE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/lib/openclaw/templates&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TARGET_DIRS=(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;~/.openclaw/workspace-main&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;~/.openclaw/workspace-dev&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;~/.openclaw/workspace-ops&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dir&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${TARGET_DIRS[@]}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Syncing to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/AGENTS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/SOUL.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/TOOLS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 触发所有 Gateway 重载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8.3 灾难恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据恢复流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 识别需要恢复的时间点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看备份列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la /var/backups/openclaw/workspace/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 确认备份内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -tzf /var/backups/openclaw/workspace/config-20260320-120000.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 停止 Gateway（避免数据写入）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl stop openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 备份当前状态（恢复失败时的救命稻草）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp -r ~/.openclaw/workspace-main \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/workspace-main-crash-$(date +%Y%m%d-%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 执行恢复&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf /var/backups/openclaw/workspace/config-20260320-120000.tar.gz \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -C ~/.openclaw/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 6. 启动 Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl start openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 7. 验证恢复结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RTO（恢复时间目标）和 RPO（恢复点目标）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RTO： Gateway 重启时间，约 30 秒&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RPO： 最近一次备份时间，建议每日备份，RPO 不超过 24 小时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第九章：配置模板与自动化&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9.1 新环境快速初始化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;初始化脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# init-workspace.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_NAME=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw/workspace-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -z&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Usage:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;workspace-name&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建目录结构&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/sessions&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从模板复制配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TEMPLATE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/lib/openclaw/templates&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/AGENTS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/SOUL.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/IDENTITY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/TOOLS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 初始化 USER.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/USER.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户档案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 基本信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 姓名：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 时区：Asia/Shanghai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 主要语言：中文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 技术偏好&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 熟悉系统：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 常用工具：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 偏好设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 通知时段：工作日 09:00-22:00&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 输出格式：结构化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 确认阈值：高风险操作需明确确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 初始化 MEMORY.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory/MEMORY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 记忆索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 用户核心信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 详见：../USER.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 项目索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 无进行中项目&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 最近重要上下文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- Workspace 初始化完成&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod -R 700&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Workspace &amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;#39; initialized at&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./init-workspace.sh dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./init-workspace.sh work&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9.2 标准化模板&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准 AGENTS.md 模板&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工作手册&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 职责范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负责：运维自动化、故障诊断、配置管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不负责：业务代码开发、硬件采购决策&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 任务执行流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;理解任务需求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;评估执行方案和风险&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;必要时向用户确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;执行操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证结果并返回摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 安全边界&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 禁止操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;未经确认的删除操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境直接修改系统配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;透露敏感信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 确认流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高风险操作需要用户明确确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不可逆操作需要二次确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 输出规范&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术文档使用 Markdown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码块标注语言&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;结论独立可读&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准 TOOLS.md 模板&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工具权限配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 可用工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 读取类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Read、Glob、Grep：始终可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 写入类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Write、Edit：需在确认的路径下操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 执行类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Bash：受限执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 禁止命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf 递归删除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;直接磁盘操作（dd、mkfs）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统用户修改&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 需要确认的命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart/reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除超过 1MB 的文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;创建系统用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9.3 配置校验&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化校验脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# validate-workspace.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${1:-$HOME/.openclaw/workspace-main}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ERRORS=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Validating Workspace:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;======================================&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查必需文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;ERROR: Missing&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ERRORS=$((ERRORS + 1))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;OK:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;exists&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 memory/ 目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;ERROR: Missing memory/ directory&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; ERRORS=$((ERRORS + 1))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OK: memory/ directory exists&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 memory/MEMORY.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory/MEMORY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;WARNING: Missing memory/MEMORY.md (recommended)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PERMS=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;stat&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%a&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$PERMS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;700&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;WARNING: Workspace permissions are&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$PERMS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, recommend 700&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 memory/ 大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEMORY_SIZE=$(du -sm&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null | cut -f1)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MEMORY_SIZE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 500 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;WARNING: memory/ is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${MEMORY_SIZE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MB, consider cleanup&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;======================================&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$ERRORS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-eq 0 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Validation passed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Validation failed with&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ERRORS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;error(s)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./validate-workspace.sh ~/.openclaw/workspace-main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./validate-workspace.sh ~/.openclaw/workspace-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第十章：安全加固&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.1 文件权限&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限基线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有者&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;仅 owner 可访问&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/openclaw.json&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;600&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-*/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-*/AGENTS.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;600&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;工作手册&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-*/memory/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/logs/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限加固脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# harden-permissions.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_HOME=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_USER=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;openclaw&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_GROUP=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;openclaw&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建用户组（如需要）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo groupadd -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_GROUP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo usermod -aG&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_GROUP&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$USER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置主目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_USER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_GROUP&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置配置文件权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 600&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置 Workspace 目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/workspace-* -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;d -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;chmod 700 {} \;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/workspace-* -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;f -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;chmod 600 {} \;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置日志目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/logs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/logs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Permissions hardened&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.2 敏感信息管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;敏感信息分类&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储建议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API Keys&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SiliconFlow API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json（加密存储）或环境变量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway auth token&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json 或密钥管理系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用户信息&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USER.md 中的个人信息&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加密存储或脱敏处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对话历史&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加密存储，访问审计&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境变量方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; memorySearch: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; remote: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; apiKey: &amp;quot;env:MEMORY_SEARCH_API_KEY&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境变量在运行时替换为实际值，配置文件本身不包含明文密钥。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;密钥管理系统集成&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境推荐使用 Vault 等密钥管理系统：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 Vault 获取密钥&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API_KEY=$(vault kv get -field=api_key secret/openclaw/memory-search)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 写入临时配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt; /tmp/openclaw-override.json &amp;lt;&amp;lt; EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;memorySearch&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;remote&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;apiKey&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$API_KEY&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动 Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway start --config /tmp/openclaw-override.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.3 审计日志&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计日志配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; logging: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; level: &amp;quot;info&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; file: &amp;quot;/var/log/openclaw/audit.log&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auditEnabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计日志内容&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置变更：who、when、what changed&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;敏感操作：文件删除、命令执行、配置修改&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;认证事件：登录成功/失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;渠道事件：消息收发、渠道连接/断开&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志分析脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# audit-analysis.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOG_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/log/openclaw/audit.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 认证事件统计 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;auth.*success&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;auth.*fail&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 配置变更记录 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;config.*change&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 敏感操作记录 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;sensitive.*operation&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 最近 24 小时活动 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date -d &amp;#39;1 day ago&amp;#39; +%Y-%m-%d)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志保留策略&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保留期&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储位置&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;90 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/log/openclaw/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1 年&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/log/openclaw/audit/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;180 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/log/openclaw/errors/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.4 安全检查清单&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署前检查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] openclaw.json 不包含明文密钥&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] Gateway 绑定到 loopback&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 认证 Token 足够复杂（32 位以上）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] Workspace 目录权限为 700&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 配置文件权限为 600&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 运行用户为专用非 root 用户&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日常巡检&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查日志中是否有异常登录尝试&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查是否有未授权的配置变更&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查 memory/ 目录大小是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查磁盘空间使用情况&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查是否有新的 Skill 文件被添加&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本更新检查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 更新前备份完整 Workspace&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 在测试环境验证新版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 确认 Skill 兼容性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 验证配置兼容性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 记录升级步骤和回滚方案&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;本文档从运维工程师视角系统阐述了 OpenClaw Workspace 的生产环境运维实践。核心要点如下：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;架构理解&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Workspace 的核心是将配置体系（AGENTS.md、SOUL.md、TOOLS.md 等）与内容体系（USER.md、memory/）分离。前者定义 Agent 的行为能力，后者存储 Agent 的知识记忆。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;目录规划&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：生产环境应采用标准目录布局，通过独立 Workspace 实现多 Agent 隔离。备份策略应覆盖配置文件和记忆目录。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件运维&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：各配置文件承担不同职责——openclaw.json 是系统宪法，AGENTS.md 是工作手册，TOOLS.md 是安全边界。理解各文件的职责边界是故障排查的基础。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆管理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：builtin 方案适合大多数场景，qmd 方案适合知识密集型需求。记忆污染应通过定期复核预防，清理策略应自动化。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多 Agent 设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：通过独立 Workspace 实现配置、记忆和权限的隔离。共享配置在 openclaw.json 中管理，专属配置在各 Workspace 中管理。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障排查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：遵循&amp;quot;配置不生效→权限问题→记忆失效→性能问题&amp;quot;的排查路径。快速修复命令和排查清单应在运维手册中固化。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全加固&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：权限最小化、敏感信息环境变量化、日志审计覆盖。安全检查清单应在部署前和日常巡检中执行。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份恢复&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Git 版本控制实现配置可追溯，tar 包实现定时备份，灾难恢复流程定义 RTO/RPO。迁移脚本实现多环境同步。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过遵循本文档的实践，运维团队可以建立规范的 Workspace 运维体系，确保 OpenClaw 在生产环境中的稳定运行。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文档版本：2026.03&lt;/em&gt;&lt;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参考来源：OpenClaw 官方文档（openclaw.cc）&lt;/em&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/06/202606241005126932963.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;600&quot; height=&quot;200&quot; style=&quot;width: 600px; height: 200px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 30 Mar 2026 10:03:52 +0800</pubDate></item><item><title>从 0 到 1：OpenClaw+K8s+Docker 完整部署教程（附避坑 + 排错）</title><link>https://www.docker.top/?id=457</link><description>&lt;div class=&quot;rich_media_content js_underline_content
                       autoTypeSetting24psection
            &quot; id=&quot;js_content&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; color: rgba(0, 0, 0, 0.9); font-size: var(--articleFontsize); overflow: hidden; text-align: justify; position: relative; z-index: 0; user-select: text; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/03/202603191716187256884.png&quot; alt=&quot;ac72dd06d4a9da1314a3ae689a716737.png&quot; style=&quot;font-size: var(--articleFontsize); letter-spacing: 0.544px; width: 680px; height: 385px;&quot; width=&quot;680&quot; height=&quot;385&quot;/&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; data-website=&quot;https://www.mdnice.com&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px 10px; outline: 0px; max-width: 100%; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; color: rgb(0, 0, 0); line-height: 1.5em; word-spacing: 0em; letter-spacing: 0em; word-break: break-word; text-align: left; visibility: visible; box-sizing: border-box !important;&quot;&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773911623998-0.4682701316420441&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;AI Agent&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;落地到企业内部，第一个挡在路上的问题就是接入层。微信、Telegram、Slack、企业微信，每个渠道的协议不一样，消息格式不一样，认证方式不一样。自己写网关代码？写到第三个渠道就想掀桌了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773911623997-0.3728688624231995&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;OpenClaw&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;就是解决这个问题的。它是一个开源 AI Agent Gateway，用 Node.js 运行时构建，把多渠道消息接入、模型路由、Token 认证这些脏活累活全包了。后端对接任意 OpenAI 兼容 API（包括 vLLM、Ollama 等自托管方案），前端对接各种 IM 渠道，中间做协议转换和流量管理。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;官方只提供了 Docker 部署方案，没有&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773911623997-0.5535461167869147&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;K8s&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;支持。但生产环境跑 Docker Compose 迟早要出事——单点故障、手动扩容、没有滚动更新，哪个都是定时炸弹。这篇文章把 Docker 方案和 K8s 方案都写清楚，Docker 方案用于开发测试快速验证，K8s 方案用于生产环境长期运行。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多渠道网关统一接入&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：HTTP API、WebSocket 双协议复用同一端口（18789），支持 Telegram Bot、企业微信、Slack 等 IM 渠道接入。消息格式在网关层统一转换，后端模型服务不需要关心渠道差异。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;插件式模型路由&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;models.providers&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;配置自定义 Provider，支持同时对接多个推理后端。模型标识使用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;provider/model&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;格式（如&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;vllm-local/Qwen3.5-35B&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;），路由逻辑在配置文件中声明，不需要写代码。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自托管模型原生支持&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：内置 OpenAI Responses API 兼容层，可以直接对接&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773911623998-0.7269436609239226&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;vLLM&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、TGI、Ollama 等主流推理引擎。配置一个&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;baseUrl&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;加一个模型列表就能用，不需要额外的适配层。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;轻量级 Token 认证&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Gateway 内置 Token 认证机制（&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.auth.token&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;），每个接入方分配独立 Token，在网关层完成鉴权。生产环境可配合 K8s NetworkPolicy 实现网络层隔离。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;企业内部 AI 助手平台&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：统一管理多个部门的 AI 助手，每个部门分配独立 Token 和模型配额。通过 K8s 多租户隔离实现部门间的资源和网络隔离，避免互相影响。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多平台消息聚合&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：同一个 AI Agent 同时在 Telegram、企业微信、Slack 上提供服务。OpenClaw 在网关层做消息协议转换，后端只需要维护一套模型服务。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;私有化大模型部署&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：数据不出企业网络，用 vLLM 部署 Qwen、LLaMA 等开源模型，OpenClaw 作为 API 网关对外提供标准化接口。GPU 资源通过 K8s 调度，按需分配给不同的推理实例。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.4 环境要求&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本要求&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ubuntu 22.04+ / Debian 12+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐 Ubuntu 22.04 LTS，内核 5.15+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;24.0+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要 Docker Compose V2（docker compose 命令）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.28+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐 1.30，需要支持 PV 动态供给&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node.js&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;24.x（容器内置）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 镜像基于 node:24-bookworm，无需手动安装&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU（可选）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NVIDIA A100/A800/H100&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;仅 vLLM 推理服务需要，OpenClaw 网关本身不需要 GPU&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4GB+（网关） / 64GB+（推理）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;网关内存需求低，推理节点建议 4 倍 GPU 显存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;20GB+（网关） / 500GB+ NVMe（推理）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推理节点需要存储模型权重文件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;网络&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;集群内网互通，Ingress Controller 已部署&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐 NGINX Ingress Controller 或 Traefik&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 准备工作&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.1 系统检查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查系统版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /etc/os-release&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查内核版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;uname -r&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 Docker 版本（需要 24.0+）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker --version&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose version&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查系统资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果部署 K8s 方案，检查集群状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl cluster-info&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预期输出&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Docker 版本 24.0 以上，Docker Compose V2 正常输出版本号。K8s 集群所有节点 Ready 状态。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.2 安装 Docker（如果还没装）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Ubuntu/Debian 安装 Docker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -fsSL https://get.docker.com | bash -s docker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 将当前用户加入 docker 组（避免每次 sudo）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo usermod -aG docker&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$USER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;newgrp docker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证安装&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run hello-world&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.3 准备 OpenClaw 配置目录&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建配置目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p ~/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建工作空间目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p ~/openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 的配置文件是 JSON5 格式，文件路径固定在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。容器内部以&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;node&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;用户（uid 1000）运行，挂载目录时需要注意权限问题。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 确保目录权限正确（容器内 node 用户 uid=1000）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo chown -R 1000:1000 ~/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo chown -R 1000:1000 ~/openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 Docker Compose 部署（官方方案）&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是官方推荐的部署方式，适合开发测试和小规模生产环境。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 使用官方安装脚本&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 提供了&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker-setup.sh&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;一键安装脚本，流程是：拉取镜像 → 初始化配置（onboard）→ 启动服务。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 拉取官方安装脚本并执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw/main/docker-setup.sh | bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果网络环境不方便直接执行远程脚本，也可以手动操作：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 手动拉取镜像&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker pull ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 初始化配置（交互式，会引导设置 Token 和基础配置）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run --rm -it \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -v&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw:/home/node/.openclaw&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; ghcr.io/openclaw/openclaw:latest \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; openclaw onboard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 环境变量配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker-setup.sh&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;支持通过环境变量定制行为：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境变量&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_IMAGE&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像地址，私有仓库可改这个&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_GATEWAY_BIND&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0.0.0.0:18789&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;网关监听地址和端口&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_HOME_VOLUME&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件挂载路径&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_SANDBOX&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;设为 1 启用沙箱模式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 自定义启动示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;OPENCLAW_IMAGE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;ghcr.io/openclaw/openclaw:latest&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;OPENCLAW_GATEWAY_BIND=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.0.0.0:18789&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;OPENCLAW_HOME_VOLUME=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 编写 Docker Compose 文件&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境建议用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker-compose.yml&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;管理，比裸&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;更容易维护：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# docker-compose.yml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3.8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;services:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openclaw-gateway:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;container_name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;restart:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;unless-stopped&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;18789:18789&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;./config:/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;./workspace:/home/node/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;environment:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NODE_ENV=production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;user:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1000:1000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;healthcheck:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;test:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;CMD&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;curl&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-f&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost:18789/healthz&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;interval:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;retries:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;start_period:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;15s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;deploy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpus:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;reservations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;512M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpus:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;logging:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;driver:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;json-file&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;options:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;max-size:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;50m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;max-file:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 编写 OpenClaw 配置文件&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./config/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;目录下创建&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（JSON5 格式，支持注释）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;// ./config/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 网关配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gateway: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; bind: &amp;quot;0.0.0.0:18789&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auth: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 生产环境必须改成随机生成的强 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; token: &amp;quot;oc-prod-a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 模型配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; models: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // 默认模型（客户端不指定模型时使用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; providers: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 自托管 vLLM 推理服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-service:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.auth.token&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;这个值必须是强随机字符串，别用示例里的值。生成方法：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 生成 32 字节随机 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl rand -hex 32&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.5 启动并验证&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动服务（后台运行）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose up -d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看日志，确认启动成功&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose logs -f openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预期输出：{&amp;quot;status&amp;quot;:&amp;quot;ok&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 就绪检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/readyz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预期输出：{&amp;quot;status&amp;quot;:&amp;quot;ready&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 带 Token 认证的请求测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Authorization: Bearer oc-prod-a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; http://localhost:18789/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/healthz&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;返回&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&amp;quot;status&amp;quot;:&amp;quot;ok&amp;quot;}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;就说明网关启动成功了。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/readyz&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;还会检查后端模型连通性，如果 vLLM 还没部署，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/readyz&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;可能返回 not ready，这是正常的。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 Kubernetes 部署方案&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;官方没有提供 K8s 部署方案，以下配置是基于 Docker 方案转写的。核心思路：把 Docker 的 bind mount 换成 PVC，把环境变量和配置文件换成 ConfigMap/Secret，把容器换成 Deployment + Service。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 创建 Namespace&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create namespace openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有 OpenClaw 相关资源都放在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;Namespace 下，方便管理和 RBAC 隔离。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 ConfigMap：OpenClaw 配置文件&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-configmap.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ConfigMap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;data:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openclaw.json:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 网关配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;gateway&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;bind&amp;quot;: &amp;quot;0.0.0.0:18789&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;auth&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Token 从 Secret 注入，这里用环境变量占位&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 实际运行时由 entrypoint 脚本替换&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;token&amp;quot;: &amp;quot;${OPENCLAW_AUTH_TOKEN}&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;models&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;default&amp;quot;: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;providers&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;baseUrl&amp;quot;: &amp;quot;http://vllm-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;api&amp;quot;: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;models&amp;quot;: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型服务地址使用 K8s 内部 DNS：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm-service.openclaw.svc.cluster.local:8000&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，不需要走集群外部网络。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.3 Secret：敏感信息&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 生成随机 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GATEWAY_TOKEN=$(openssl rand -hex 32)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建 Secret&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create secret generic openclaw-secrets \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --namespace=openclaw \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --from-literal=gateway-token=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${GATEWAY_TOKEN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --from-literal=openai-api-key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;sk-your-openai-key-if-needed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证 Secret 创建成功&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret openclaw-secrets -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;也可以用 YAML 声明式创建（Token 需要 base64 编码）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-secret.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Secret&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-secrets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Opaque&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;data:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# echo -n &amp;quot;your-token&amp;quot; | base64&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;gateway-token:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;b2MtcHJvZC1hMWIyYzNkNGU1ZjZnN2g4aTlqMGsxbDJtM240bzVwNg==&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openai-api-key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.4 PersistentVolumeClaim：持久化存储&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-pvc.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ReadWriteOnce&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ReadWriteOnce&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;50Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;storageClassName&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;根据集群实际情况调整。云厂商环境一般用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gp3&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（AWS）、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pd-ssd&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（GCP）、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;managed-csi&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（Azure）。自建集群用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;local-path&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或 NFS。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果 Gateway 需要多副本，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;accessModes&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;要改成&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ReadWriteMany&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，存储后端也要支持（NFS、CephFS 等）。单副本用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ReadWriteOnce&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;就够了。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.5 Deployment：OpenClaw Gateway&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-deployment.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;strategy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;RollingUpdate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rollingUpdate:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSurge:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxUnavailable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;runAsUser:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;runAsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;fsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initContainers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# initContainer 用于将 ConfigMap 中的配置文件复制到可写目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 并替换 Token 占位符&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;config-init&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/bin/sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;-c&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cp /config-readonly/openclaw.json /home/node/.openclaw/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sed -i &amp;quot;s|\${OPENCLAW_AUTH_TOKEN}|${GATEWAY_TOKEN}|g&amp;quot; /home/node/.openclaw/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;GATEWAY_TOKEN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;valueFrom:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretKeyRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-secrets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway-token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;config-readonly&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/config-readonly&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NODE_ENV&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;production&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;OPENCLAW_AUTH_TOKEN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;valueFrom:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretKeyRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-secrets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway-token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/home/node/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;500m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;512Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2000m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/readyz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;startupProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;config-readonly&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;configMap:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentVolumeClaim:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;claimName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentVolumeClaim:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;claimName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;terminationGracePeriodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;几个关键设计点：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;initContainer 处理配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：ConfigMap 挂载的目录是只读的，但 OpenClaw 运行时需要读写&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;目录。所以用 initContainer 把配置文件从 ConfigMap 复制到 PVC，同时替换 Token 占位符。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;securityContext uid=1000&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：OpenClaw 镜像以&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;node&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;用户运行（uid 1000），PVC 目录的 fsGroup 也设为 1000，避免权限问题。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三种探针都配了&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：startupProbe 给容器 60 秒启动时间（5s × 12次），livenessProbe 检测进程存活，readinessProbe 检测服务就绪。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RollingUpdate maxUnavailable=0&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：更新时先拉起新 Pod 再下旧 Pod，服务零中断。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.6 Service&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-service.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ClusterIP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;targetPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# NodePort Service（可选，用于无 Ingress 环境直接访问）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway-nodeport&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NodePort&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;targetPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodePort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;31789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ClusterIP Service 供集群内部访问（Ingress 转发用），NodePort Service 供没有 Ingress 的环境直接通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点IP:31789&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;访问。生产环境推荐走 Ingress + ClusterIP，不暴露 NodePort。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.7 Ingress：HTTPS 暴露&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-ingress.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;networking.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Ingress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-read-timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3600&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-send-timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3600&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket 支持（OpenClaw 端口复用 HTTP + WS）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-http-version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/upstream-hash-by:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;$remote_addr&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求体大小限制（Agent 对话上下文可能很长）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-body-size:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;50m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TLS 证书自动签发（需要 cert-manager）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cert-manager.io/cluster-issuer:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;letsencrypt-prod&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ingressClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tls:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;hosts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-tls&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;host:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;http:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;paths:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;pathType:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Prefix&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;backend:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;service:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;number:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ingress 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy-read-timeout&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;设成 3600 秒，因为大模型推理响应时间可能很长（特别是长文本生成场景）。默认 60 秒超时在生产环境一定会出问题，这个坑踩过的人都知道。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WebSocket 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy-http-version&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;必须设为&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，否则 WS 连接建不起来。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 vLLM 推理服务部署&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 网关本身不做推理，需要后端挂一个推理服务。这里用 vLLM 部署&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Qwen/Qwen3.5-35B-A3B-FP8&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;模型。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.1 vLLM Deployment&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vllm-deployment.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-inference&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm/vllm-openai:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;python3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;-m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm.entrypoints.openai.api_server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--model&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--host&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.0.0.0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--port&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--tensor-parallel-size&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-model-len&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32768&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--gpu-memory-utilization&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.90&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--block-size&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--swap-space&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--dtype&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;auto&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--trust-remote-code&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;HUGGING_FACE_HUB_TOKEN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;valueFrom:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretKeyRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-secrets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openai-api-key&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;optional:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLM_WORKER_MULTIPROC_METHOD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;spawn&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;64Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;128Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/root/.cache/huggingface&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/dev/shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentVolumeClaim:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;claimName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;emptyDir:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;medium:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;sizeLimit:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;16Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nvidia.com/gpu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Exists&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NoSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;gpu-type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;a100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ReadWriteOnce&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;200Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;几个坑点说明：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/dev/shm&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;必须挂载 emptyDir&lt;/span&gt;&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：vLLM 多进程通信依赖共享内存，Docker 默认的 64MB shm 远远不够。这里给了 16Gi，35B 模型 4 卡并行至少需要这个量级。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;**&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tensor-parallel-size=4&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;**：Qwen3.5-35B-A3B-FP8 是 FP8 量化模型，4 张 A100 80GB 可以稳定加载。2 张卡勉强能跑但显存利用率太高，留不出 KV Cache 空间。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;**&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;initialDelaySeconds=120&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;**：大模型加载需要时间，35B 模型从磁盘加载到 GPU 至少要 90 秒，设短了 Pod 会被 K8s 反复杀掉重启。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;**&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-memory-utilization=0.90&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;**：给 KV Cache 留 10% 的显存余量。设成 0.95 虽然能多接几个并发，但在突发流量下容易 OOM。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelector&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：确保 Pod 调度到有 GPU 的节点，标签&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-type: a100&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;需要提前给节点打好。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.2 vLLM Service&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vllm-service.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ClusterIP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;targetPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个 Service 只在集群内部暴露，OpenClaw 网关通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http://vllm-service.openclaw.svc.cluster.local:8000/v1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;访问。不需要对外暴露推理服务端口，安全性更好。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5 OpenClaw 对接 vLLM&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.1 配置 models.providers&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;中&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;models.providers&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;部分配置 vLLM 作为推理后端：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; models: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; providers: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // K8s 环境使用 Service DNS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Docker 环境使用容器名或宿主机 IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // baseUrl: &amp;quot;http://host.docker.internal:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Provider 名称&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm-local&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;可以自定义，客户端请求时通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;provider/model&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;格式指定模型，比如&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm-local/Qwen3.5-35B&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果有多个推理后端，可以配置多个 Provider：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; models: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; providers: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-code&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-code-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&amp;quot;Qwen/Qwen3-Coder-30B-A3B-FP8&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.2 验证模型连通性&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 环境：在集群内部验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run -it --rm debug-curl \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --namespace=openclaw \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --image=curlimages/curl \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --restart=Never \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -- curl -s http://vllm-service:8000/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预期输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# {&amp;quot;data&amp;quot;:[{&amp;quot;id&amp;quot;:&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;model&amp;quot;,...}]}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证 OpenClaw 网关到 vLLM 的端到端连通性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run -it --rm debug-curl \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --namespace=openclaw \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --image=curlimages/curl \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --restart=Never \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -- curl -s -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Authorization: Bearer &amp;lt;your-gateway-token&amp;gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;http://openclaw-gateway:18789/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.6 启动验证&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.6.1 K8s 部署一键执行&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 按顺序部署所有资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-configmap.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-secret.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-pvc.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f vllm-deployment.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f vllm-service.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-deployment.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-service.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-ingress.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看所有资源状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get all -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 等待所有 Pod 就绪&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;wait&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;=condition=ready pod \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -l app=openclaw \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -n openclaw \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --timeout=300s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.6.2 健康检查验证&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 方案验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/healthz | python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/readyz | python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 方案验证（通过 Ingress）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s https://openclaw.example.com/healthz | python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s https://openclaw.example.com/readyz | python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 方案验证（通过 NodePort）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://&amp;lt;node-ip&amp;gt;:31789/healthz | python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 方案验证（通过 port-forward，调试用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl port-forward svc/openclaw-gateway 18789:18789 -n openclaw &amp;amp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/healthz | python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.6.3 端到端功能测试&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发送一个完整的对话请求，验证网关→vLLM 链路&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s -X POST \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Authorization: Bearer &amp;lt;your-gateway-token&amp;gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; http://localhost:18789/v1/chat/completions \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;#39;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;model&amp;quot;: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;messages&amp;quot;: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;quot;role&amp;quot;: &amp;quot;system&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;You are a helpful assistant.&amp;quot;},&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;Hello, what is Kubernetes?&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;max_tokens&amp;quot;: 200,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;temperature&amp;quot;: 0.7&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果返回了正常的模型响应，说明整条链路跑通了：客户端 → OpenClaw Gateway（认证 + 路由）→ vLLM（推理）→ 返回结果。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 完整 docker-compose.yml（含 vLLM）&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 方案的完整 Compose 文件，一个文件跑起整套服务：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# docker-compose.yml - OpenClaw + vLLM 完整部署&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3.8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;services:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OpenClaw Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openclaw-gateway:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;container_name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;restart:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;unless-stopped&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;18789:18789&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;./config:/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;./workspace:/home/node/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;environment:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NODE_ENV=production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;user:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1000:1000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;depends_on:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;vllm:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;condition:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;service_healthy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;healthcheck:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;test:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;CMD&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;curl&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-f&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost:18789/healthz&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;interval:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;retries:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;start_period:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;15s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;deploy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpus:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;reservations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;512M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpus:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;networks:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-net&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;logging:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;driver:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;json-file&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;options:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;max-size:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;50m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;max-file:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 推理服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;vllm:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm/vllm-openai:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;container_name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-inference&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;restart:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;unless-stopped&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8000:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--model&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--host&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.0.0.0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--port&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--tensor-parallel-size&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-model-len&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32768&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--gpu-memory-utilization&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.90&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--block-size&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--swap-space&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--dtype&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;auto&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--trust-remote-code&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;model-cache:/root/.cache/huggingface&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;environment:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;HUGGING_FACE_HUB_TOKEN=${HF_TOKEN:-}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLM_WORKER_MULTIPROC_METHOD=spawn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;healthcheck:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;test:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;CMD&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;curl&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-f&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost:8000/health&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;interval:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;15s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;retries:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;start_period:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;180s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;shm_size:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16gb&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;deploy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;reservations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;devices:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;driver:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nvidia&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;count:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;4&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;capabilities:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[gpu]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;networks:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-net&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OpenClaw CLI（管理工具，按需启动）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openclaw-cli:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;container_name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-cli&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;profiles:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;tools&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;./config:/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;./workspace:/home/node/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;user:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1000:1000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;stdin_open:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tty:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;networks:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-net&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;model-cache:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;driver:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;networks:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openclaw-net:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;driver:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;bridge&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用方法：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动网关 + 推理服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose up -d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看所有服务状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose ps&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 按需启动 CLI 管理工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose --profile tools run --rm openclaw-cli openclaw --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;help&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看实时日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose logs -f&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 停止所有服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 停止并清理数据卷（谨慎操作）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose down -v&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 完整 K8s YAML（All-in-One Manifest）&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;把所有 K8s 资源合并到一个文件，方便一键部署：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# openclaw-all-in-one.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用方法：kubectl apply -f openclaw-all-in-one.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Namespace ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- ConfigMap ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ConfigMap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;data:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;openclaw.json:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;gateway&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;bind&amp;quot;: &amp;quot;0.0.0.0:18789&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;auth&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;token&amp;quot;: &amp;quot;${OPENCLAW_AUTH_TOKEN}&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;models&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;default&amp;quot;: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;providers&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;baseUrl&amp;quot;: &amp;quot;http://vllm-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;api&amp;quot;: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;models&amp;quot;: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Secret（部署前先替换 Token） ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Secret&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-secrets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Opaque&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;stringData:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;gateway-token:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;REPLACE_WITH_RANDOM_TOKEN&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- PVC: Gateway 数据 ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[ReadWriteOnce]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- PVC: Gateway 工作空间 ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[ReadWriteOnce]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;50Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- PVC: vLLM 模型缓存 ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[ReadWriteOnce]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;200Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Deployment: OpenClaw Gateway ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;strategy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;RollingUpdate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rollingUpdate:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSurge:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxUnavailable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;runAsUser:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;runAsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;fsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initContainers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;config-init&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;command:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;/bin/sh&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-c&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cp /config-readonly/openclaw.json /home/node/.openclaw/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sed -i &amp;quot;s|\${OPENCLAW_AUTH_TOKEN}|${GATEWAY_TOKEN}|g&amp;quot; /home/node/.openclaw/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;GATEWAY_TOKEN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;valueFrom:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretKeyRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-secrets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway-token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;config-readonly&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/config-readonly&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ghcr.io/openclaw/openclaw:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NODE_ENV&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;production&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;500m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;512Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2000m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/readyz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;startupProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/home/node/.openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/home/node/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;config-readonly&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;configMap:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentVolumeClaim:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;claimName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentVolumeClaim:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;claimName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;terminationGracePeriodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Deployment: vLLM ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-inference&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm/vllm-openai:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;command:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;python3&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-m&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm.entrypoints.openai.api_server&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--model=Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--host=0.0.0.0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--port=8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--tensor-parallel-size=4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-model-len=32768&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--gpu-memory-utilization=0.90&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--block-size=16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--swap-space=8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--dtype=auto&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--trust-remote-code&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLM_WORKER_MULTIPROC_METHOD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;spawn&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;64Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;128Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/root/.cache/huggingface&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/dev/shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentVolumeClaim:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;claimName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-model-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;emptyDir:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;medium:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;sizeLimit:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;16Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nvidia.com/gpu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Exists&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NoSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;gpu-type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;a100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Service: OpenClaw Gateway ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ClusterIP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;targetPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Service: vLLM ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ClusterIP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;targetPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --- Ingress ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;networking.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Ingress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-read-timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3600&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-send-timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3600&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-http-version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nginx.ingress.kubernetes.io/proxy-body-size:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;50m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cert-manager.io/cluster-issuer:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;letsencrypt-prod&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ingressClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tls:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;hosts:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[openclaw.example.com]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-tls&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;host:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;http:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;paths:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;pathType:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Prefix&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;backend:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;service:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;number:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署命令：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 先替换 Token（手动或用 envsubst）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;GATEWAY_TOKEN=$(openssl rand -hex 32)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sed -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;s/REPLACE_WITH_RANDOM_TOKEN/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${GATEWAY_TOKEN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/g&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openclaw-all-in-one.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 一键部署&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-all-in-one.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看部署状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get all -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 openclaw.json 生产配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;完整的生产级配置文件，包含 vLLM Provider、Qwen3.5 模型和多 Provider 路由：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;// ~/.openclaw/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;// 生产环境配置 - 多 Provider 路由 + vLLM 推理后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gateway: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // 监听地址，容器环境用 0.0.0.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; bind: &amp;quot;0.0.0.0:18789&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auth: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 每个接入方使用独立 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 通过 openclaw CLI 管理多 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; token: &amp;quot;oc-prod-&amp;lt;your-random-token-here&amp;gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // 请求限流配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rateLimit: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 每分钟最大请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; maxRequestsPerMinute: 600,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 单个 Token 每分钟最大请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; maxRequestsPerMinutePerToken: 60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; models: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // 默认模型（不指定模型时使用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; providers: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 主力推理后端：vLLM + Qwen3.5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 代码生成专用后端（可选）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-code&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-code.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Qwen/Qwen3-Coder-30B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 备用云端 Provider（可选，用于降级）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;openai-cloud&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;https://api.openai.com/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; apiKey: &amp;quot;${OPENAI_API_KEY}&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;gpt-4o&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;gpt-4o-mini&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 日志配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; logging: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; level: &amp;quot;info&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // 生产环境建议 JSON 格式，方便 ELK/Loki 采集&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; format: &amp;quot;json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.4 案例一：企业微信 / Telegram 多渠道接入&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景描述&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：公司同时使用企业微信（内部沟通）和 Telegram（海外团队），需要同一个 AI 助手在两个平台上提供服务。OpenClaw 作为网关统一接入，后端共用同一个 vLLM 推理实例。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;架构图&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;企业微信 Bot ──→ Webhook ──→ OpenClaw Gateway (:18789) ──→ vLLM (:8000)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Telegram Bot ──→ Webhook ──↗ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;↓&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Qwen3.5-35B-A3B-FP8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在企业微信管理后台创建应用，获取&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CorpID&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AgentID&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Secret&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 Telegram 通过 @BotFather 创建 Bot，获取&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BOT_TOKEN&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置 OpenClaw 渠道接入&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;// openclaw.json - 多渠道配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gateway: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; bind: &amp;quot;0.0.0.0:18789&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auth: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; token: &amp;quot;oc-prod-&amp;lt;your-token&amp;gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 渠道配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; channels: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // 企业微信接入&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;wechat-work&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; type: &amp;quot;wechat-work&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; corpId: &amp;quot;ww1234567890abcdef&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; agentId: 1000002,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; secret: &amp;quot;${WECHAT_WORK_SECRET}&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; token: &amp;quot;${WECHAT_WORK_TOKEN}&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; encodingAesKey: &amp;quot;${WECHAT_WORK_AES_KEY}&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 消息回调地址：https://openclaw.example.com/webhook/wechat-work&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; webhookPath: &amp;quot;/webhook/wechat-work&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; // Telegram 接入&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;telegram&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; type: &amp;quot;telegram&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; botToken: &amp;quot;${TELEGRAM_BOT_TOKEN}&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 消息回调地址：https://openclaw.example.com/webhook/telegram&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; webhookPath: &amp;quot;/webhook/telegram&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; models: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default: &amp;quot;vllm-local/Qwen3.5-35B&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; providers: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;vllm-local&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;http://vllm-service.openclaw.svc.cluster.local:8000/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; api: &amp;quot;openai-responses&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; models: [&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;设置 Webhook 回调&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Telegram：设置 Webhook URL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s -X POST \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;https://api.telegram.org/bot&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${TELEGRAM_BOT_TOKEN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/setWebhook&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;url&amp;quot;: &amp;quot;https://openclaw.example.com/webhook/telegram&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 企业微信：在管理后台「应用管理」→「接收消息」中配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# URL: https://openclaw.example.com/webhook/wechat-work&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Token 和 EncodingAESKey 与 openclaw.json 中保持一致&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证 Telegram Webhook 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;https://api.telegram.org/bot&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${TELEGRAM_BOT_TOKEN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/getWebhookInfo&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| python3 -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在企业微信中给 Bot 发消息，观察 OpenClaw 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -f -l app=openclaw,component=gateway -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 Telegram 中给 Bot 发消息，观察响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5 案例二：K8s 多租户隔离部署&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景描述&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：公司有三个部门（研发部、市场部、客服部），每个部门需要独立的 AI 助手，使用不同的模型和配置。要求部门之间网络隔离，互不影响。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Namespace 隔离 + NetworkPolicy 网络隔离 + RBAC 权限隔离 + 独立 vLLM 实例。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5.1 Namespace 规划&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建部门级 Namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create namespace openclaw-dev &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 研发部&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create namespace openclaw-marketing&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 市场部&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create namespace openclaw-support &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 客服部&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 打标签用于 NetworkPolicy 选择&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label namespace openclaw-dev department=dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label namespace openclaw-marketing department=marketing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label namespace openclaw-support department=support&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5.2 NetworkPolicy：部门间网络隔离&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# networkpolicy-isolation.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认拒绝所有跨 Namespace 流量，只允许同 Namespace 内通信&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 研发部 NetworkPolicy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;networking.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NetworkPolicy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;deny-cross-namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policyTypes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Ingress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Egress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ingress:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许同 Namespace 内 Pod 互访&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;from:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许 Ingress Controller 访问（必须，否则外部请求进不来）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;from:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaceSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kubernetes.io/metadata.name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ingress-nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;egress:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许同 Namespace 内 Pod 互访&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许 DNS 查询&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaceSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;k8s-app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kube-dns&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;UDP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;53&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;53&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许访问外部网络（模型下载、API 调用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ipBlock:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cidr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;except:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;172.16&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;192.168&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 市场部和客服部使用相同模板，修改 namespace 即可&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;networking.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NetworkPolicy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;deny-cross-namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-marketing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policyTypes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[Ingress,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Egress]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ingress:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;from:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;from:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaceSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kubernetes.io/metadata.name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ingress-nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;egress:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaceSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;k8s-app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kube-dns&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;UDP,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;53&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;53&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ipBlock:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cidr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;except:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[10.0.0.0/8,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;172.16&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/12,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;192.168&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/16]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5.3 RBAC：部门管理员权限&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# rbac-dev-admin.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 研发部管理员只能管理自己 Namespace 的资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Role&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-admin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroups:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;apps&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;networking.k8s.io&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;pods&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;services&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;deployments&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;configmaps&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;ingresses&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;verbs:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;get&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;list&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;watch&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;create&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;update&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;patch&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroups:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;pods/log&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;verbs:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;get&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;list&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 禁止删除操作和 Secret 访问&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroups:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;secrets&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;verbs:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;get&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;list&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;RoleBinding&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;dev-admin-binding&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;subjects:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;User&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;dev-admin@company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rbac.authorization.k8s.io&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;roleRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Role&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-admin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rbac.authorization.k8s.io&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5.4 各部门独立部署&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每个部门在自己的 Namespace 部署独立的 OpenClaw Gateway + vLLM 实例。以研发部为例：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 部署研发部实例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 生成独立 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DEV_TOKEN=$(openssl rand -hex 32)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 创建 Secret&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create secret generic openclaw-secrets \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --namespace=openclaw-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --from-literal=gateway-token=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DEV_TOKEN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 部署（使用 all-in-one 模板，修改 namespace）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sed&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/namespace: openclaw/namespace: openclaw-dev/g&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openclaw-all-in-one.yaml | \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; kubectl apply -f -&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get all -n openclaw-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部门间完全隔离：不同 Token、不同网络策略、不同模型配置、不同资源配额。研发部的请求不会路由到市场部的 vLLM，市场部的 Pod 也无法访问研发部的服务。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5.5 ResourceQuota：资源配额限制&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# resourcequota-dev.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;hard:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;128Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;256Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentvolumeclaims:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;pods:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 市场部配额（不需要 GPU，使用云端 API）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-marketing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;hard:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;persistentvolumeclaims:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;pods:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;市场部只部署 OpenClaw Gateway，模型对接云端 API（如 OpenAI），不需要 GPU 资源。研发部自带 vLLM + GPU，资源配额更高。这样既满足了不同部门的需求差异，又避免了资源争抢。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 性能优化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 并发调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：OpenClaw 基于 Node.js 单线程事件循环，默认并发能力取决于 libuv 线程池大小。生产环境建议设置&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;UV_THREADPOOL_SIZE=16&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，可将 I/O 密集型操作的并发提升 4 倍（默认值 4）。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Deployment 中添加环境变量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;UV_THREADPOOL_SIZE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NODE_OPTIONS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-old-space-size=1536&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-old-space-size&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;限制 V8 堆内存上限，设为容器 memory limit 的 75%。2Gi 内存限制对应 1536MB 堆上限，留出余量给 Node.js 的非堆内存（Buffer、Native 模块等）。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM Continuous Batching 参数&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：vLLM 的 continuous batching 是吞吐量的关键。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;控制同时处理的最大序列数，默认 256。A100 80GB 4 卡跑 35B 模型，实测&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs=128&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是甜点值，QPS 稳定在 40-60。设太高会导致 KV Cache 不够分，反而降低吞吐。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-num-seqs=128&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-num-batched-tokens=32768&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--enable-chunked-prefill&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;enable-chunked-prefill&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;开启后，长 prompt 的 prefill 阶段会分块执行，不会阻塞其他请求的 decode 阶段。实测开启后 P99 延迟从 12s 降到 4s。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源 limits 设置原则&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：CPU request 设为 limit 的 25-50%，给突发流量留余量。内存 request 和 limit 建议设成一样，避免 OOM Kill 后 Pod 被驱逐到其他节点引发雪崩。GPU 的 request 和 limit 必须相等（NVIDIA device plugin 的硬性要求）。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;500m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# limit 的 25%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 和 limit 相同&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2000m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 安全加固&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Token 轮换机制&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：生产环境建议每 90 天轮换一次 Gateway Token。轮换流程：生成新 Token → 更新 Secret → 滚动重启 Gateway Pod → 通知接入方更新 Token。可以通过 CronJob 自动化：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# token-rotation-cronjob.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;batch/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;CronJob&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;token-rotation&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;schedule:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0 2 1 */3 *&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每季度 1 号凌晨 2 点执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;jobTemplate:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;serviceAccountName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;token-rotator&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rotate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;bitnami/kubectl:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;command:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;/bin/sh&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-c&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NEW_TOKEN=$(openssl rand -hex 32)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kubectl create secret generic openclaw-secrets \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --namespace=openclaw \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --from-literal=gateway-token=&amp;quot;${NEW_TOKEN}&amp;quot; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --dry-run=client -o yaml | kubectl apply -f -&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kubectl rollout restart deployment/openclaw-gateway -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;Token rotated at $(date). New token prefix: ${NEW_TOKEN:0:8}...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;restartPolicy:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;OnFailure&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NetworkPolicy 最小权限&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Gateway Pod 只需要出站访问 vLLM Service（端口 8000）和 DNS。入站只允许 Ingress Controller。别偷懒开&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;allow-all&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，网络层隔离是多租户安全的基础。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# networkpolicy-gateway.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;networking.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NetworkPolicy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway-policy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policyTypes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[Ingress,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Egress]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ingress:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;from:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaceSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kubernetes.io/metadata.name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ingress-nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;18789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;egress:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许访问 vLLM Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许 DNS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;to:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaceSelector:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;k8s-app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kube-dns&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;UDP,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;53&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;{protocol:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;TCP,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;53&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RBAC 最小权限原则&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：运维人员使用 ClusterRole，开发人员只给 Namespace 级别 Role。Secret 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;get&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;权限要谨慎分配，能用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;list&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;就别给&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;get&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;list&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;只返回 Secret 名称，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;get&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;会返回内容）。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TLS 全链路加密&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Ingress 到 Gateway 走 HTTPS（cert-manager 自动签发），Gateway 到 vLLM 在集群内部走 HTTP（性能考虑）。如果安全要求极高，可以用 Service Mesh（Istio/Linkerd）实现集群内部 mTLS。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 高可用配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 多副本 + PDB&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：生产环境至少 2 个副本，配合 PodDisruptionBudget 保证滚动更新和节点维护时至少有 1 个 Pod 可用。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# pdb.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;policy/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PodDisruptionBudget&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway-pdb&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;minAvailable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HPA 自动扩缩容&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：基于 CPU 使用率自动扩缩 Gateway 副本数。Gateway 是 I/O 密集型，CPU 通常不高，建议同时监控自定义指标（如请求队列长度）。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# hpa.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;autoscaling/v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;HorizontalPodAutoscaler&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway-hpa&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;scaleTargetRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;minReplicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxReplicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metrics:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Resource&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resource:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;cpu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;target:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Utilization&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;averageUtilization:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;70&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Resource&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resource:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;target:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Utilization&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;averageUtilization:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;behavior:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;scaleUp:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;stabilizationWindowSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policies:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Pods&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;scaleDown:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;stabilizationWindowSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policies:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Pods&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;scaleDown.stabilizationWindowSeconds=300&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;很重要，防止流量波动导致频繁缩容。缩容太快会在下一波请求到来时来不及扩容，用户体验骤降。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 高可用&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：vLLM 本身是有状态服务（GPU 显存中有模型权重），不支持多副本负载均衡。高可用方案是部署 2 个独立的 vLLM 实例（不同 Deployment），在 OpenClaw 配置多 Provider，主 Provider 故障时手动切换到备用 Provider。未来可以用 OpenClaw 的 Provider 健康检查实现自动故障转移。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 配置注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;uid 1000 权限问题&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：这是新手踩得最多的坑。OpenClaw 容器以&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;node&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;用户（uid 1000）运行，如果宿主机目录的 owner 不是 1000，容器内写入会报&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EACCES: permission denied&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修复权限（Docker 方案）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo chown -R 1000:1000 ./config ./workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 方案通过 fsGroup 自动处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# spec.securityContext.fsGroup: 1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;bind 地址配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：容器内必须 bind&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0.0.0.0&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，别写&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;127.0.0.1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。写&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;127.0.0.1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;只能容器内部访问，外部请求过来全是 connection refused。这个错误在日志里不会报错，排查起来很头疼。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置热重载&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：OpenClaw 目前不支持配置文件热重载，修改&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;后需要重启服务才能生效。K8s 环境下&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deployment/openclaw-gateway -n openclaw&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;就行，Docker 环境&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose restart openclaw-gateway&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.2 常见错误&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误现象&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EACCES: permission denied&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;启动失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;挂载目录 owner 不是 uid 1000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R 1000:1000&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;挂载目录，或 K8s 设置&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fsGroup: 1000&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connect ECONNREFUSED 127.0.0.1:8000&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 无法连接 vLLM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 vLLM Service 是否 Ready，检查&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;baseUrl&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;地址是否正确&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/healthz&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;返回 200 但&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/readyz&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;返回 503&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 启动了但后端模型不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等待 vLLM Pod Ready，或检查 Provider 配置中的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;baseUrl&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;401 Unauthorized&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求 Token 和配置的 Token 不一致&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Authorization: Bearer &amp;lt;token&amp;gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;头，和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.auth.token&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;对比&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 状态&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CrashLoopBackOff&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器反复崩溃重启&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs &amp;lt;pod-name&amp;gt; --previous&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;查看崩溃前日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM Pod&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOMKilled&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存或系统内存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-memory-utilization&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，或增加 GPU 数量 / 减小&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ingress 返回&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;504 Gateway Timeout&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型推理超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy-read-timeout&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;到 3600+，检查 vLLM 是否过载&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 日志&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 不够分&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，增加 GPU 显存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.3 兼容性问题&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Compose V1 vs V2&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：OpenClaw 的 docker-compose.yml 使用了&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;deploy.resources.reservations.devices&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;语法（GPU 声明），只有 Docker Compose V2 支持。V1 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker-compose&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;命令会报语法错误。用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（没有横杠）确认是 V2。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;K8s 版本兼容&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Ingress API&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;networking.k8s.io/v1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;从 K8s 1.19 开始稳定，1.22 移除了&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;extensions/v1beta1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。如果集群版本低于 1.19，需要改用旧 API 版本。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NVIDIA Device Plugin&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：K8s 使用 GPU 需要安装 NVIDIA Device Plugin DaemonSet。没装的话 Pod 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia.com/gpu&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;资源请求永远无法满足，Pod 会一直 Pending。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 15px 4px 2px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); word-break: break-all; background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 Device Plugin 是否安装&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get ds -n kube-system | grep nvidia&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果没有，安装&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.0/deployments/static/nvidia-device-plugin.yml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Container Runtime&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：containerd 1.7+ 和 Docker 24+ 都支持 GPU 直通。CRI-O 需要额外配置 nvidia-container-runtime。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 故障排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.1 日志查看&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 环境：查看 Gateway 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -f -l app=openclaw,component=gateway -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 环境：查看 vLLM 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -f -l app=openclaw,component=vllm -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# K8s 环境：查看崩溃前的日志（Pod 重启后之前的日志会丢失）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs &amp;lt;pod-name&amp;gt; -n openclaw --previous&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境：查看实时日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose logs -f openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose logs -f vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 容器内日志路径（如果需要进容器看）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OpenClaw: /home/node/.openclaw/logs/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM: 标准输出（无文件日志，靠容器日志驱动收集）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 过滤错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -l component=gateway -n openclaw | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error\|fatal\|exception&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.2 常见问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题一：Gateway Pod 状态 Pending，无法调度&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 诊断：查看 Pod 事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -l component=gateway -n openclaw | tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 常见原因&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. PVC 无法绑定（storageClassName 不存在）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get storageclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 资源不足（CPU/内存不够）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe nodes | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Allocated resources&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. nodeSelector 不匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes --show-labels&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC Pending → 检查 StorageClass 是否存在，是否有可用 PV。云环境检查 CSI Driver 是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源不足 → 降低 resource requests，或扩容节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelector 不匹配 →&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node &amp;lt;node-name&amp;gt; gpu-type=a100&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题二：vLLM Pod OOMKilled&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 诊断：查看 Pod 终止原因&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -l component=vllm -n openclaw -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.items[0].status.containerStatuses[0].lastState.terminated.reason}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看节点内存使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Pod 内存使用趋势&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pod -l component=vllm -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统内存 OOM → 增加 Pod memory limit，确保节点物理内存充足（建议 4 倍 GPU 显存）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存 OOM → 降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-memory-utilization&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;到 0.85，减小&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，或增加 tensor-parallel-size&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/dev/shm&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;不足 → 确认 emptyDir 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sizeLimit&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;足够大（建议 16Gi+）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题三：Token 认证失败，返回 401&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 诊断：确认配置的 Token 值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret openclaw-secrets -n openclaw -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.data.gateway-token}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| base64 -d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 确认 ConfigMap 中的占位符已被替换&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it &amp;lt;gateway-pod&amp;gt; -n openclaw -- cat /home/node/.openclaw/openclaw.json | grep token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Authorization: Bearer &amp;lt;token&amp;gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;http://localhost:18789/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认请求头格式：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Authorization: Bearer &amp;lt;token&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，注意 Bearer 后面有空格&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认 initContainer 的 sed 替换逻辑正确执行了（查看 initContainer 日志）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果 Secret 更新了但 Pod 没重启，Token 不会自动生效。执行&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deployment/openclaw-gateway -n openclaw&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.3 调试模式&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OpenClaw 开启 debug 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法一：环境变量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;env deployment/openclaw-gateway -n openclaw DEBUG=openclaw:*&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法二：修改 ConfigMap 中的 logging.level&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl edit configmap openclaw-config -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 将 &amp;quot;level&amp;quot;: &amp;quot;info&amp;quot; 改为 &amp;quot;level&amp;quot;: &amp;quot;debug&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 然后重启&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deployment/openclaw-gateway -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 开启详细日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 args 中添加 --log-level=debug&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl edit deployment/vllm-inference -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进入容器交互式调试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it &amp;lt;gateway-pod&amp;gt; -n openclaw -- /bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 容器内检查网络连通性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://vllm-service:8000/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 容器内查看进程状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 容器内查看内存使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;node -e&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;console.log(process.memoryUsage())&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 性能监控&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.1 关键指标监控&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gateway 基础监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CPU 使用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pod -l component=gateway -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 内存使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pod -l component=gateway -n openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 网络连接数（进入容器内查看）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it &amp;lt;gateway-pod&amp;gt; -n openclaw -- ss -s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 推理性能指标（vLLM 内置 metrics 端点）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://vllm-service:8000/metrics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键 vLLM 指标&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://vllm-service:8000/metrics | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:num_requests|vllm:gpu_cache|vllm:avg_generation&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.2 监控指标说明&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指标名称&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常范围&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;告警阈值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway CPU 使用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10-40%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;70%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node.js 单线程，持续高 CPU 说明事件循环阻塞&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 内存使用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;200-800MB&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;1.5GB&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接近 limit 时有 OOM 风险&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 请求延迟 P95&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100-500ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;2000ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不含模型推理时间，纯网关转发延迟&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 活跃连接数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0-500&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;1000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WebSocket 长连接场景下可能较高&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM GPU 利用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60-90%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;95%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;持续 95%+ 说明需要扩容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM KV Cache 使用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;40-80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;90%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超 90% 新请求会排队等待&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 请求队列长度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0-20&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;队列积压说明推理速度跟不上请求速度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 生成速率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30-50 tokens/s/req&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt;10 tokens/s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低于 10 说明 GPU 资源不足或 batch 配置有问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.3 Prometheus 监控告警配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# prometheus-rules.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;monitoring.coreos.com/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PrometheusRule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-alerts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;release:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;prometheus&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gateway Pod 挂了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;OpenClawGatewayDown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;up{job=&amp;quot;openclaw-gateway&amp;quot;}&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;1m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OpenClaw Gateway 实例不可用&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.pod }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;已停止响应超过 1 分钟&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gateway 内存使用过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;OpenClawGatewayHighMemory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; container_memory_working_set_bytes{namespace=&amp;quot;openclaw&amp;quot;, container=&amp;quot;gateway&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; / container_spec_memory_limit_bytes{namespace=&amp;quot;openclaw&amp;quot;, container=&amp;quot;gateway&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; 0.85&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OpenClaw Gateway 内存使用超过 85%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.pod }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;内存使用&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gateway 重启次数过多&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;OpenClawGatewayRestarts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; increase(kube_pod_container_status_restarts_total{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; namespace=&amp;quot;openclaw&amp;quot;, container=&amp;quot;gateway&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }[1h]) &amp;gt; 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OpenClaw Gateway 1 小时内重启超过 3 次&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw-vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM GPU 显存使用过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VllmGpuMemoryHigh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vllm:gpu_cache_usage_perc &amp;gt; 0.90&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM GPU KV Cache 使用率超过 90%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;KV Cache 使用率&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，新请求可能排队&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 请求队列积压&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VllmQueueBacklog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vllm:num_requests_waiting &amp;gt; 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM 请求队列积压超过 50&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;等待处理的请求数:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 推理延迟过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VllmHighLatency&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; histogram_quantile(0.95,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rate(vllm:e2e_request_latency_seconds_bucket[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &amp;gt; 30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM P95 推理延迟超过 30 秒&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prometheus ServiceMonitor 配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（需要 Prometheus Operator）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# servicemonitor.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;monitoring.coreos.com/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ServiceMonitor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-metrics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;release:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;prometheus&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;component:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;endpoints:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/metrics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;interval:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;15s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 备份与恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 备份策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要备份的数据：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;配置文件（ConfigMap 已版本化，但建议额外备份）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 工作空间数据（PVC）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;K8s 资源定义（YAML 文件）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Secret（Token、API Key）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# backup-openclaw.sh - OpenClaw 备份脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 建议通过 CronJob 每天执行一次&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;/backup/openclaw/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date +%Y%m%d)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAMESPACE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;openclaw&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 备份 ConfigMap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get configmap openclaw-config -n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${NAMESPACE}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-o yaml &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/configmap.yaml&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 备份 Secret（加密存储）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret openclaw-secrets -n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${NAMESPACE}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-o yaml &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/secret.yaml.enc&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 生产环境用 age/sops 加密&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# sops --encrypt &amp;quot;${BACKUP_DIR}/secret.yaml&amp;quot; &amp;gt; &amp;quot;${BACKUP_DIR}/secret.yaml.enc&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 备份所有 K8s 资源定义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get all,configmap,secret,pvc,ingress,networkpolicy -n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${NAMESPACE}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-o yaml &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/all-resources.yaml&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 备份 PVC 数据（需要 Velero 或手动快照）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 云环境使用 VolumeSnapshot&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f - &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apiVersion: snapshot.storage.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kind: VolumeSnapshot&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; name: openclaw-data-snapshot-$(date +%Y%m%d)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; namespace:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${NAMESPACE}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; volumeSnapshotClassName: csi-snapclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;source&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; persistentVolumeClaimName: openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Backup completed:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理 30 天前的备份&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find /backup/openclaw -maxdepth 1 -mtime +30 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;d -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;rm -rf {} \;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.2 恢复流程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 停止现有服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl scale deployment openclaw-gateway -n openclaw --replicas=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 恢复配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f /backup/openclaw/20260313/configmap.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f /backup/openclaw/20260313/secret.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 恢复 PVC 数据（从 VolumeSnapshot）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f - &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apiVersion: v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kind: PersistentVolumeClaim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; name: openclaw-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; namespace: openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; accessModes: [ReadWriteOnce]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; storageClassName: standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; storage: 10Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; dataSource:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; name: openclaw-data-snapshot-20260313&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; kind: VolumeSnapshot&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; apiGroup: snapshot.storage.k8s.io&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 重新启动服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl scale deployment openclaw-gateway -n openclaw --replicas=2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 验证恢复结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;wait&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;=condition=ready pod -l component=gateway -n openclaw --timeout=120s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 方案快速启动&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker-setup.sh&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;一键部署，适合开发测试。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker-compose.yml&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;管理服务依赖和健康检查，比裸&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;更可控。核心配置就一个&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（JSON5 格式），改完重启即可。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;K8s 方案生产就绪&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Deployment + Service + Ingress 三件套，配合 ConfigMap/Secret 管理配置和敏感信息。initContainer 解决 ConfigMap 只读问题，securityContext 解决 uid 1000 权限问题。三种探针（startup/liveness/readiness）保证服务可靠性。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 推理后端&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：tensor-parallel 多卡并行，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/dev/shm&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;共享内存必须挂载，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;initialDelaySeconds&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;要给够（120s+）。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-memory-utilization=0.90&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是安全值，别贪心设 0.95。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多租户隔离&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Namespace + NetworkPolicy + RBAC + ResourceQuota 四层隔离。NetworkPolicy 默认拒绝跨 Namespace 流量，RBAC 限制管理权限，ResourceQuota 防止资源争抢。每个部门独立 Token，独立 vLLM 实例。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全加固&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Token 定期轮换（建议 90 天），NetworkPolicy 最小权限，TLS 全链路加密。Secret 的 RBAC 权限严格控制，别给&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;get&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;权限只给&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;list&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控告警&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Gateway 关注 CPU、内存、连接数；vLLM 关注 GPU Cache 使用率、请求队列长度、生成速率。Prometheus + ServiceMonitor 采集指标，PrometheusRule 配置告警。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service Mesh 集成&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：用 Istio 或 Linkerd 实现集群内部 mTLS、流量镜像、金丝雀发布。OpenClaw Gateway 的多副本可以利用 Istio 的加权路由实现灰度更新，新版本先承接 10% 流量，验证稳定后逐步扩大。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实践建议：先在测试环境部署 Istio，给 openclaw namespace 打上&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;istio-injection=enabled&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;标签，观察 sidecar 注入后的性能影响。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GitOps 持续交付&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：用 ArgoCD 或 Flux 管理 OpenClaw 的 K8s 资源定义，配置变更通过 Git PR 审批，自动同步到集群。ConfigMap 变更自动触发 Deployment 滚动更新，告别手动&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实践建议：把 openclaw-all-in-one.yaml 拆分成独立文件放进 Git 仓库，ArgoCD Application 指向仓库路径，开启自动同步。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多集群联邦部署&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 KubeFed 或 Karmada 实现跨集群部署，不同区域的用户请求路由到就近的 OpenClaw 实例。GPU 资源池跨集群调度，提升利用率。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实践建议：先实现两个集群的同配置部署，DNS 层做地域路由（AWS Route53 Geolocation / Cloudflare Load Balancing），再考虑联邦管理。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 官方文档 - 项目源码和官方 Docker 部署指南&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 官方文档 - vLLM 部署配置和性能调优参考&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes 官方文档 - NetworkPolicy - 网络策略配置详解&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NVIDIA GPU Operator - K8s GPU 资源管理和驱动自动化&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Qwen3.5 模型卡 - 模型规格、硬件需求和推理配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 命令速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== Docker 方案 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose up -d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动所有服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose down &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 停止所有服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose logs -f openclaw-gateway &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Gateway 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose restart openclaw-gateway &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重启 Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose ps &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看服务状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker compose&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openclaw-gateway /bin/bash &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进入 Gateway 容器&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/healthz &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s http://localhost:18789/readyz &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 就绪检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== K8s 方案 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f openclaw-all-in-one.yaml &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 一键部署&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get all -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看所有资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -f -l component=gateway -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Gateway 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -f -l component=vllm -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 vLLM 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deploy/openclaw-gateway -n openclaw &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重启 Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout status deploy/openclaw-gateway -n openclaw &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看滚动更新状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl port-forward svc/openclaw-gateway 18789:18789 -n openclaw &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 端口转发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pod -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看资源使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod &amp;lt;pod-name&amp;gt; -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Pod 详情&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it &amp;lt;pod-name&amp;gt; -n openclaw -- /bin/bash &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进入容器&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 调试命令 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run debug-curl --rm -it --image=curlimages/curl -n openclaw -- sh &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动调试 Pod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -n openclaw --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看事件（按时间排序）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看存储卷状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get networkpolicy -n openclaw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看网络策略&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== Token 管理 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl rand -hex 32 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 生成随机 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret openclaw-secrets -n openclaw -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.data.gateway-token}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| base64 -d &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前 Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. 配置参数详解&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json 核心参数&lt;/strong&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数路径&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.bind&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;0.0.0.0:18789&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;网关监听地址，格式&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;host:port&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.auth.token&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 认证 Token，必填&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.rateLimit.maxRequestsPerMinute&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;number&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;600&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;全局每分钟最大请求数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gateway.rateLimit.maxRequestsPerMinutePerToken&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;number&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单 Token 每分钟最大请求数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;models.default&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认模型，格式&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;provider/model&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;models.providers.&amp;lt;name&amp;gt;.baseUrl&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推理后端 API 地址&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;models.providers.&amp;lt;name&amp;gt;.api&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;openai-responses&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 兼容模式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;models.providers.&amp;lt;name&amp;gt;.apiKey&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端 API Key（自托管可不填）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;models.providers.&amp;lt;name&amp;gt;.models&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;array&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;该 Provider 支持的模型列表&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logging.level&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;info&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志级别：debug/info/warn/error&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logging.format&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;json&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志格式：json/text&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 关键启动参数&lt;/strong&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--model&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型名称或路径，必填&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按 GPU 数量设置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;张量并行度，等于使用的 GPU 数量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型默认值&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;32768&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最大序列长度，影响 KV Cache 大小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0.90&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0.85-0.90&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存利用率上限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--block-size&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 块大小（tokens/block）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;256&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;64-128&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同时处理的最大序列数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-batched-tokens&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;32768&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;32768&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单批次最大 token 数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--swap-space&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU swap 空间大小（GiB）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--dtype&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;auto&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;auto&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;计算精度，FP8 模型用 auto 即可&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--enable-chunked-prefill&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;false&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;true&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分块预填充，降低长 prompt 延迟&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--trust-remote-code&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;false&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;true&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;允许执行模型仓库的自定义代码&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;C. 术语表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;术语&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解释&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AI Agent Gateway&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AI Agent Gateway&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AI 代理网关，负责多渠道消息接入、认证、模型路由和协议转换&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Provider&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Provider&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型提供方，在 OpenClaw 中指一个推理后端配置（包含 baseUrl 和模型列表）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Key-Value Cache&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型推理过程中缓存的注意力机制键值对，占用 GPU 显存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tensor Parallel&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tensor Parallelism&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;张量并行，将模型参数切分到多张 GPU 上并行计算&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PagedAttention&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Paged Attention&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 的核心技术，将 KV Cache 按页管理，提升显存利用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Continuous Batching&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Continuous Batching&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连续批处理，动态将新请求加入正在处理的批次，提升吞吐量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PDB&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod Disruption Budget&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 中断预算，限制同时不可用的 Pod 数量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HPA&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Horizontal Pod Autoscaler&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;水平 Pod 自动扩缩容器&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NetworkPolicy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Network Policy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;K8s 网络策略，控制 Pod 间的网络流量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RBAC&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Role-Based Access Control&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;基于角色的访问控制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ConfigMap&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ConfigMap&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;K8s 配置映射，存储非敏感配置数据&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Secret&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Secret&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;K8s 密钥对象，存储敏感数据（Token、密码等）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;JSON5&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;JSON5&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;JSON 的超集，支持注释、尾逗号、单引号等语法&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%) 0% 0% / auto no-repeat scroll padding-box border-box transparent; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background: none 0% 0% / auto no-repeat scroll padding-box border-box transparent; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;D. 端口清单&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;端口&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;协议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用途&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;暴露方式&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw Gateway&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;18789&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP + WebSocket&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关入口（认证、路由、协议转换）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ingress / NodePort 31789&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM Inference&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenAI 兼容 API（推理服务）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ClusterIP（仅集群内部）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM Metrics&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prometheus 指标端点（/metrics）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ClusterIP（Prometheus 抓取）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prometheus&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9090&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控数据查询&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按需暴露&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Grafana&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控面板&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按需暴露&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-size: 17px; letter-spacing: 0.544px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; word-spacing: 2px; color: rgb(0, 0, 0); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; word-spacing: 2px; color: rgb(0, 0, 0); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; word-spacing: 2px; color: rgb(0, 0, 0); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; word-spacing: 2px; color: rgb(0, 0, 0); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; color: rgb(0, 0, 0); text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/03/202603191717045064599.png&quot; alt=&quot;image.png&quot; width=&quot;578&quot; height=&quot;200&quot; style=&quot;width: 578px; height: 200px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/div&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 19 Mar 2026 17:12:54 +0800</pubDate></item><item><title>K8s 生产故障实战复盘：10 个高危问题与避坑指南</title><link>https://www.docker.top/?id=456</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/03/202603191657147781656.jpg&quot; alt=&quot;24b3d5a50c3be9c830bb5901c5eeff9e.jpg&quot; width=&quot;756&quot; height=&quot;303&quot; style=&quot;width: 756px; height: 303px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; data-website=&quot;https://www.mdnice.com&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px 10px; outline: 0px; max-width: 100%; overflow-wrap: break-word; word-spacing: 0em; text-wrap: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; font-family: Optima, PingFangSC-light, serif; line-height: 1.5em; letter-spacing: 0em; word-break: break-word; visibility: visible; box-sizing: border-box !important;&quot;&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; border-color: rgb(248, 57, 41) rgb(0, 0, 0) rgb(0, 0, 0); align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: solid none none; border-width: 2px 1px 1px; border-radius: 0px; box-shadow: none; display: flex; flex-direction: unset; float: unset; height: auto; justify-content: center; line-height: 1.5em; overflow: unset; text-align: center; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 3px 5px 5px; outline: 0px; max-width: 100%; font-size: 20px; color: #FFFFFF; background: none 0% 0% / auto no-repeat scroll padding-box border-box #F83929; line-height: 1.8em; letter-spacing: 0em; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px 0px 13px 13px; box-shadow: none; display: block; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-align: left; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;K8s 生产环境 10 大&amp;quot;炸雷&amp;quot;复盘：我是如何搞挂生产集群的&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这篇文章记录了我这些年在 K8s 生产环境踩过的坑。每一个案例都是血泪教训，有些甚至导致了生产事故。希望通过分享这些经历，能帮助大家避免重蹈覆辙。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;声明&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：以下案例均已脱敏处理，部分细节有所调整。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;K8s 已经成为容器编排的事实标准，但它的复杂性也带来了很多潜在的风险点。根据我的经验，生产环境出问题往往不是因为 K8s 本身有 bug，而是：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;配置不当&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;资源规划不合理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;缺乏监控告警&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;操作流程不规范&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;对某些机制理解不深&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 文章结构&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文将按照故障严重程度，从&amp;quot;集群级灾难&amp;quot;到&amp;quot;应用级问题&amp;quot;，逐一复盘 10 个真实案例：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; visibility: visible;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;序号&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;故障类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;影响范围&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;严重程度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; visibility: visible;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;etcd 磁盘写满&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;整个集群&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;P0 - 灾难&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; visibility: visible;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;2&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;API Server OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;整个集群&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;P0 - 灾难&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; visibility: visible;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;3&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;证书过期&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;整个集群&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;P0 - 灾难&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; visibility: visible;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;4&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;节点批量 NotReady&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;多节点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; visibility: visible; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;P1 - 严重&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PDB 配置导致无法驱逐&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用级&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P1 - 严重&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源配额耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;命名空间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P2 - 中等&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;滚动更新卡住&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用级&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P2 - 中等&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ConfigMap 热更新踩坑&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用级&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P2 - 中等&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HPA 抖动风暴&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用级&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P2 - 中等&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像拉取失败雪崩&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P2 - 中等&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 环境信息&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.28 - 1.30&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不同案例发生在不同版本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5.x&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;集群数据存储&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器运行时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;containerd 1.7+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部分老集群还在用 Docker&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点规模&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;50 - 500 节点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中大规模集群&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、集群级灾难案例&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 案例一：etcd 磁盘写满，集群瘫痪&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;那是一个周五下午（没错，就是最经典的周五下午），监控突然开始疯狂告警：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] API Server 响应超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] 多个节点状态变为 Unknown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] 新 Pod 无法调度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录 master 节点一看，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;命令卡住不动，整个集群基本瘫痪了。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 etcd 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：etcd.service: Failed with result &amp;#39;exit-code&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 etcd 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u etcd -n 100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键错误：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;quot;mvcc: database space exceeded&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;quot;etcdserver: no space&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查磁盘使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /var/lib/etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：100% 使用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：etcd 数据目录所在磁盘写满了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;为什么会写满？排查发现是因为：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某个 Operator 存在 bug，疯狂创建 Event 对象&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 没有配置自动压缩（compaction）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘容量规划不足，只给了 20GB&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 紧急扩容磁盘（如果是云环境）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者清理其他文件腾出空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 手动压缩 etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 获取当前 revision&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl endpoint status --write-out=table&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 压缩到指定 revision&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl compact &amp;lt;revision&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 执行碎片整理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl defrag --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 清理过多的 Event&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete events --all -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 配置 etcd 自动压缩（在 etcd 启动参数中）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;--auto-compaction-mode=periodic&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;--auto-compaction-retention=1h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 设置配额告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;--quota-backend-bytes=8589934592&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 8GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 添加磁盘监控告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Prometheus 告警规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;EtcdDiskSpaceLow&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(etcd_mvcc_db_total_size_in_bytes&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;etcd_server_quota_backend_bytes)&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;etcd 磁盘空间即将耗尽&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：etcd 是 K8s 的心脏，一定要重点监控。建议磁盘至少预留 50GB，并配置自动压缩。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 案例二：API Server OOM，集群失联&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某天早上 9 点，业务高峰期，突然收到告警：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] kube-apiserver 进程重启&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] 大量 Pod 状态 Unknown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[WARNING] kubectl 命令响应缓慢&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看监控发现 API Server 内存使用率飙升到 100%，然后被 OOM Killer 干掉了。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 API Server 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u kube-apiserver -n 200 | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;oom\|memory\|killed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看系统日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;out of memory&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：Out of memory: Killed process 12345 (kube-apiserver)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 API Server 内存配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep kube-apiserver&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现没有设置内存限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：有人写了一个脚本，用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A -o json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;获取所有 Pod 的完整信息，而且是每 10 秒执行一次。集群有 5000+ Pod，每次请求返回的 JSON 数据量巨大，API Server 内存被撑爆了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更坑的是，这个脚本还是在多个节点上并行运行的...&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 找出问题请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 开启 API Server 审计日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 kube-apiserver 配置中添加：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--audit-log-path=/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/kubernetes/audit.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--audit-policy-file=/etc/kubernetes/audit-policy.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 分析审计日志，找出大请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/kubernetes/audit.log | jq&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;select(.responseStatus.code == 200) | {user: .user.username, verb: .verb, resource: .objectRef.resource}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| sort | uniq -c | sort -rn | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 限制 API Server 资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 对于 kubeadm 部署的集群，修改 /etc/kubernetes/manifests/kube-apiserver.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; cpu:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;500m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; memory:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; cpu:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; memory:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4Gi&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 根据实际情况调整&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 配置请求限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-requests-inflight=400&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-mutating-requests-inflight=200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. API 优先级和公平性配置（APF）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;flowcontrol.apiserver.k8s.io/v1beta3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;FlowSchema&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;restrict-list-all&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;priorityLevelConfiguration:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;low-priority&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchingPrecedence:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;subjects:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ServiceAccount&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;serviceAccount:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resourceRules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;verbs:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;list&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;watch&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroups:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;*&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;pods&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;events&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaces:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;*&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 监控 API Server 内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Prometheus 告警规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- alert: APIServerHighMemory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; expr: process_resident_memory_bytes{job=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;kube-apiserver&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;} &amp;gt; 3e9&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: 5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; severity: warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; summary:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;API Server 内存使用过高&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：永远不要在生产环境无限制地 list 所有资源。使用 label selector、field selector 或分页查询。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 案例三：证书过期，一夜回到解放前&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;周一早上来上班，发现所有 kubectl 命令都报错：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Unable to connect to the server: x509: certificate has expired or is not yet valid&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;整个集群完全无法操作，业务虽然还在跑（已有的 Pod），但无法进行任何变更。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查证书有效期&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/kubernetes/pki/apiserver.crt -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# notBefore=Jan 15 00:00:00 2025 GMT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# notAfter=Jan 15 00:00:00 2026 GMT &amp;nbsp;# 已过期！&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查所有证书&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs check-expiration&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：kubeadm 创建的证书默认有效期是 1 年，我们忘记续期了。更惨的是，这个集群是一年前搭建的，当时没有设置证书过期告警...&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 备份现有证书&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp -r /etc/kubernetes/pki /etc/kubernetes/pki.bak&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 续期所有证书&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs renew all&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 重启控制平面组件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 对于 static pod 方式部署的组件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mv /etc/kubernetes/manifests/*.yaml /tmp/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sleep 30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mv /tmp/*.yaml /etc/kubernetes/manifests/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 更新 kubeconfig&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm kubeconfig user --client-name=admin --org=system:masters &amp;gt; /etc/kubernetes/admin.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp /etc/kubernetes/admin.conf ~/.kube/config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 设置证书过期监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 kube-prometheus-stack 自带的证书监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者自定义脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# check-cert-expiry.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CERT_PATH=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/kubernetes/pki/apiserver.crt&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EXPIRY_DATE=$(openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$CERT_PATH&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-noout -enddate | cut -d= -f2)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EXPIRY_EPOCH=$(date -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$EXPIRY_DATE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+%s)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NOW_EPOCH=$(date +%s)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DAYS_LEFT=$(( (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$EXPIRY_EPOCH&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$NOW_EPOCH&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;) / 86400 ))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$DAYS_LEFT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-lt 30 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;WARNING: Certificate expires in&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DAYS_LEFT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;days&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发送告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. Prometheus 告警规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;KubernetesCertificateExpiration&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apiserver_client_certificate_expiration_seconds_count{job=&amp;quot;kube-apiserver&amp;quot;}&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;and&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;histogram_quantile(0.01,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rate(apiserver_client_certificate_expiration_seconds_bucket{job=&amp;quot;kube-apiserver&amp;quot;}[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;604800&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Kubernetes 证书即将过期&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：部署集群后第一件事就是设置证书过期告警！建议在证书过期前 30 天就开始告警。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、节点级严重故障&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 案例四：节点批量 NotReady，业务雪崩&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某天下午，监控大屏突然一片红：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] Node node-01 状态变为 NotReady&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] Node node-02 状态变为 NotReady&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] Node node-03 状态变为 NotReady&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;... (持续告警)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5 分钟内，集群 30% 的节点都变成了 NotReady，大量 Pod 被驱逐重建，业务出现严重抖动。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看节点状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node node-01&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键信息：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Conditions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; Ready &amp;nbsp; False &amp;nbsp; KubeletNotReady &amp;nbsp; container runtime is down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 登录问题节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssh node-01&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status containerd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：containerd.service: Failed&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 containerd 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u containerd -n 100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现大量 &amp;quot;too many open files&amp;quot; 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：containerd 进程打开的文件描述符超过了系统限制，导致 containerd 崩溃。而 containerd 崩溃后，kubelet 无法与容器运行时通信，节点就变成 NotReady 了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;为什么会打开这么多文件？排查发现是某个应用疯狂写日志，每秒产生上千个日志文件...&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 临时提高文件描述符限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;ulimit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n 1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 永久修改系统限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt;&amp;gt; /etc/security/limits.conf &amp;lt;&amp;lt; EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* soft nofile 1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* hard nofile 1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;root soft nofile 1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;root hard nofile 1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 修改 containerd 服务配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p /etc/systemd/system/containerd.service.d/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt; /etc/systemd/system/containerd.service.d/limits.conf &amp;lt;&amp;lt; EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LimitNOFILE=1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LimitNPROC=1048576&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 重启服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl daemon-reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart containerd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 清理问题应用的日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/pods -name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-size +100M -delete&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 监控文件描述符使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# node_exporter 自带此指标&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;node_filefd_allocated / node_filefd_maximum &amp;gt; 0.8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 配置日志轮转&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 kubelet 配置中&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--container-log-max-size=100Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--container-log-max-files=5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：系统级资源限制（ulimit）很容易被忽视，但一旦触发就是灾难性的。建议在节点初始化时就配置好。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 案例五：PDB 配置不当，节点无法维护&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;计划对集群节点进行内核升级，需要逐个驱逐节点上的 Pod。执行&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;时卡住了：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain node-05 --ignore-daemonsets --delete-emptydir-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# evicting pod default/web-app-xxx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# error when evicting pods/&amp;quot;web-app-xxx&amp;quot; -n &amp;quot;default&amp;quot; (will retry after 5s):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Cannot evict pod as it would violate the pod&amp;#39;s disruption budget.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等了半小时还是这样，节点维护工作完全无法进行。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 PDB 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pdb -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pdb web-app-pdb&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Min Available: 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Current: 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Desired: 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Allowed Disruptions: 0 &amp;nbsp;# 问题在这里！&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：PDB（Pod Disruption Budget）配置了&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;minAvailable: 3&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，而 Deployment 的副本数也是 3。这意味着任何时候都不允许少于 3 个 Pod，所以一个都驱逐不了。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案一：临时增加副本数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl scale deployment web-app --replicas=4&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 等待新 Pod Ready 后再 drain&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案二：临时调整 PDB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl patch pdb web-app-pdb -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;spec&amp;quot;:{&amp;quot;minAvailable&amp;quot;:2}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案三：删除 PDB（不推荐，有风险）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pdb web-app-pdb&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正确的 PDB 配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推荐使用百分比而不是绝对数值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;policy/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PodDisruptionBudget&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web-app-pdb&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方式一：最少可用百分比&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;minAvailable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;50%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方式二：最大不可用数量（推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# maxUnavailable: 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web-app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：PDB 的 minAvailable 不要设置成和副本数相等！建议使用百分比或 maxUnavailable。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、应用级常见问题&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 案例六：资源配额耗尽，新 Pod 无法创建&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开发同学反馈新部署的应用一直处于 Pending 状态：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;READY &amp;nbsp; STATUS &amp;nbsp; &amp;nbsp;RESTARTS &amp;nbsp; AGE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# new-app-xxx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0/1 &amp;nbsp; &amp;nbsp; Pending &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;30m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod new-app-xxx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Events:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; Warning &amp;nbsp;FailedScheduling &amp;nbsp;pod didn&amp;#39;t trigger scale-up:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; 1 Insufficient cpu, 1 Insufficient memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查命名空间配额&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe resourcequota -n dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Name: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dev-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Resource &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Used &amp;nbsp; &amp;nbsp;Hard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ---- &amp;nbsp; &amp;nbsp;----&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# limits.cpu &amp;nbsp; &amp;nbsp; &amp;nbsp; 8 &amp;nbsp; &amp;nbsp; &amp;nbsp; 8 &amp;nbsp; &amp;nbsp; &amp;nbsp;# 已用完！&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# limits.memory &amp;nbsp; &amp;nbsp;16Gi &amp;nbsp; &amp;nbsp;16Gi &amp;nbsp; # 已用完！&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# requests.cpu &amp;nbsp; &amp;nbsp; 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# requests.memory &amp;nbsp;8Gi &amp;nbsp; &amp;nbsp; 8Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：命名空间的资源配额已经用完了，但没有人注意到。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 查看当前资源使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pods -n dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 找出资源占用大户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -n dev -o custom-columns=\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAME:.metadata.name,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU_REQ:.spec.containers[*].resources.requests.cpu,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEM_REQ:.spec.containers[*].resources.requests.memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 清理不需要的资源或扩大配额&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl patch resourcequota dev-quota -n dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;spec&amp;quot;:{&amp;quot;hard&amp;quot;:{&amp;quot;limits.cpu&amp;quot;:&amp;quot;16&amp;quot;,&amp;quot;limits.memory&amp;quot;:&amp;quot;32Gi&amp;quot;}}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：配置 ResourceQuota 后一定要配套监控告警，在使用率达到 80% 时就应该告警。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 案例七：滚动更新卡住，新旧版本并存&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发布新版本后，Deployment 一直卡在更新中：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout status deployment/api-server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Waiting for deployment &amp;quot;api-server&amp;quot; rollout to finish: 2 out of 3 new replicas have been updated...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -l app=api-server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;READY &amp;nbsp; STATUS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RESTARTS &amp;nbsp; AGE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# api-server-old-xxx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1 &amp;nbsp; &amp;nbsp; Running &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# api-server-new-xxx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0/1 &amp;nbsp; &amp;nbsp; CrashLoopBackOff &amp;nbsp; 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# api-server-new-yyy &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0/1 &amp;nbsp; &amp;nbsp; CrashLoopBackOff &amp;nbsp; 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod api-server-new-xxx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Events:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; Warning &amp;nbsp;Unhealthy &amp;nbsp;Readiness probe failed: HTTP probe failed with statuscode: 500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：新版本代码有 bug，健康检查一直失败。由于默认的滚动更新策略，旧 Pod 不会被删除，导致更新卡住。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决过程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 回滚到上一版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout undo deployment/api-server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 查看回滚状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout status deployment/api-server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 修复代码后重新发布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置合理的更新策略和超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;progressDeadlineSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;600&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 10分钟超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;strategy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;RollingUpdate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rollingUpdate:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSurge:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxUnavailable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：发布前一定要在测试环境验证健康检查配置！&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.3 案例八：ConfigMap 热更新踩坑&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更新了 ConfigMap 中的配置，但应用没有生效：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl edit configmap app-config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修改了数据库连接字符串&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 但应用还是连接旧的数据库&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs app-xxx | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;database&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出还是旧的连接地址&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：ConfigMap 更新后，已经运行的 Pod 不会自动重新加载配置。这是 K8s 的设计行为，不是 bug。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有两种挂载方式，行为不同：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境变量方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：永远不会自动更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Volume 挂载方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：会自动更新文件，但应用需要自己监听文件变化&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案一：重启 Pod（最简单）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deployment/app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案二：使用 Reloader 自动重启&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 安装 stakater/Reloader&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 Deployment 上添加注解&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl annotate deployment app reloader.stakater.com/auto=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：ConfigMap 更新不会自动触发 Pod 重启，需要额外机制处理。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.4 案例九：HPA 抖动风暴&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置了 HPA 后，Pod 数量疯狂波动：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10:00 - 副本数: 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10:01 - 副本数: 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10:02 - 副本数: 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10:03 - 副本数: 8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe hpa web-app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现 CPU 使用率在阈值附近波动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每次扩容后负载下降，然后缩容，负载又上升...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：HPA 配置的阈值太敏感，加上默认的扩缩容行为，导致抖动。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;autoscaling/v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;HorizontalPodAutoscaler&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;behavior:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;scaleDown:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;stabilizationWindowSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缩容稳定窗口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policies:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Percent&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;scaleUp:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;stabilizationWindowSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;policies:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;type:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Percent&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：HPA 一定要配置 behavior 字段，控制扩缩容速度。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.5 案例十：镜像拉取失败雪崩&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障现象&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某天早上，大量 Pod 启动失败：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;READY &amp;nbsp; STATUS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RESTARTS &amp;nbsp; AGE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# app-a-xxx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0/1 &amp;nbsp; &amp;nbsp; ImagePullBackOff &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# app-b-xxx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0/1 &amp;nbsp; &amp;nbsp; ImagePullBackOff &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# app-c-xxx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0/1 &amp;nbsp; &amp;nbsp; ErrImagePull &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod app&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;-a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-xxx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Events:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; Warning &amp;nbsp;Failed &amp;nbsp; Failed to pull image &amp;quot;registry.example.com/app:v1&amp;quot;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; rpc error: code = Unknown desc = failed to pull and unpack image:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; unexpected status code 503 Service Unavailable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根本原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：内部镜像仓库挂了，所有需要拉取镜像的 Pod 都失败了。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 配置镜像拉取策略，减少不必要的拉取&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;registry.example.com/app:v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;imagePullPolicy:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;IfNotPresent&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 本地有就不拉取&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 配置多镜像仓库备份&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 Harbor 的镜像复制功能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;教训&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：镜像仓库是单点故障，必须做高可用或备份。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障预防清单&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 必备监控告警&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控项&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;告警阈值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 磁盘使用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止磁盘写满&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API Server 内存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;证书有效期&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 30 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止证书过期&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点 Ready 状态&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NotReady &amp;gt; 5min&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;及时发现节点问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 重启次数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 5 次/小时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发现应用问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源配额使用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止配额耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 运维检查清单&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每日检查脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 集群健康检查 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 节点状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 节点状态 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes | grep -v&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Ready&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 系统 Pod 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 系统组件 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -n kube-system | grep -v&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Running\|Completed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 证书有效期&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 证书检查 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs check-expiration 2&amp;gt;/dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;非 kubeadm 集群&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. etcd 健康&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- etcd 状态 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get componentstatuses 2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 资源使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 资源使用 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 十大教训回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;案例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;核心教训&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 磁盘满&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置自动压缩，监控磁盘使用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API Server OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限制大查询，配置 APF&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;证书过期&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;设置过期告警，定期续期&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点 NotReady&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置系统资源限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PDB 配置错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用百分比或 maxUnavailable&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源配额耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控配额使用率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;滚动更新卡住&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试环境验证健康检查&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ConfigMap 不生效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用 Reloader 或手动重启&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HPA 抖动&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置 behavior 稳定窗口&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像拉取失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像仓库高可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes 官方故障排查指南&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 运维最佳实践&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes 生产最佳实践&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 10px 10px 10px 20px; outline: 0px; border-width: 3px; border-style: none; border-color: rgba(0, 0, 0, 0.4); color: var(--weui-FG-1); font-size: 15px; max-width: 100%; border-radius: 0px; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0.05); width: auto; height: auto; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; overflow: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: block; color: #F83929; font-size: 28px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; color: rgb(53, 53, 53); font-size: 16px; line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;写在最后&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：每一次故障都是成长的机会。希望这些血泪教训能帮助大家少走弯路。记住，生产环境没有小事，任何配置变更都要三思而后行。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/03/202603191658044013943.png&quot; alt=&quot;image.png&quot; width=&quot;525&quot; height=&quot;182&quot; style=&quot;width: 525px; height: 182px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Wed, 11 Mar 2026 16:56:10 +0800</pubDate></item><item><title>Kubernetes 调度深度解析：从原理到落地，让 Pod 稳定可控</title><link>https://www.docker.top/?id=455</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/03/202603191653341396568.png&quot; alt=&quot;1201f5dab159b00eb75e5ebaba338a59.png&quot; width=&quot;671&quot; height=&quot;447&quot; style=&quot;width: 671px; height: 447px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; data-website=&quot;https://www.mdnice.com&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px 10px; outline: 0px; max-width: 100%; overflow-wrap: break-word; word-spacing: 0em; text-wrap: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; font-family: Optima, PingFangSC-light, serif; line-height: 1.5em; letter-spacing: 0em; word-break: break-word; visibility: visible; box-sizing: border-box !important;&quot;&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; border-color: rgb(248, 57, 41) rgb(0, 0, 0) rgb(0, 0, 0); align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: solid none none; border-width: 2px 1px 1px; border-radius: 0px; box-shadow: none; display: flex; flex-direction: unset; float: unset; height: auto; justify-content: center; line-height: 1.5em; overflow: unset; text-align: center; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 3px 5px 5px; outline: 0px; max-width: 100%; font-size: 20px; color: #FFFFFF; background: none 0% 0% / auto no-repeat scroll padding-box border-box #F83929; line-height: 1.8em; letter-spacing: 0em; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px 0px 13px 13px; box-shadow: none; display: block; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-align: left; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Kubernetes Pod调度策略详解&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod调度是&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773910337287-0.014015307005933009&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;Kubernetes&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;的核心机制之一，决定了Pod最终运行在哪个节点上。默认调度器kube-scheduler通过一系列预选（Filtering）和优选（Scoring）算法完成调度决策，但默认行为在生产环境中往往不够用。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实际场景中经常遇到的问题：数据库&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773910337286-0.8704195877687659&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;Pod&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;被调度到了没有SSD的节点上，导致IO性能差；两个高负载服务的Pod被调度到同一个节点，互相抢资源；GPU节点上跑了一堆普通业务Pod，真正需要GPU的任务反而调度不上去。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这些问题都需要通过调度策略来解决。Kubernetes提供了nodeSelector、nodeAffinity、podAffinity/podAntiAffinity、taints/tolerations、topologySpreadConstraints等多种调度机制，本文逐一讲解并给出生产环境的配置方案。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多层调度控制&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：从简单的nodeSelector到复杂的自定义调度器，提供不同粒度的调度控制能力&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;软硬约束结合&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：requiredDuringScheduling是硬约束（不满足就不调度），preferredDuringScheduling是软约束（尽量满足，不满足也能调度）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;拓扑感知&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：topologySpreadConstraints支持按zone、node、rack等拓扑域分散Pod，实现跨故障域部署&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;抢占机制&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：PriorityClass支持高优先级Pod抢占低优先级Pod的资源&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景一：将数据库、缓存等IO密集型Pod调度到SSD节点，计算密集型Pod调度到高CPU节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景二：同一服务的多个副本分散到不同节点/可用区，避免单点故障导致服务全部不可用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景三：GPU、FPGA等特殊硬件资源的独占调度，防止普通Pod占用专用资源&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景四：多租户集群中，不同团队的Pod隔离到各自的节点池&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.4 环境要求&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本要求&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.24+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologySpreadConstraints在1.19 GA，PodSecurity在1.25 GA&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kube-scheduler&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与集群版本一致&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自定义调度器需要单独部署&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点标签&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;提前规划&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度策略依赖节点标签，需要统一标签规范&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;metrics-server&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0.6+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源感知调度需要metrics数据&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 准备工作&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.1 节点标签规划&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度策略的基础是节点标签，先把标签体系规划好：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看现有节点标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes --show-labels&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 按硬件类型打标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-01 disktype=ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-02 disktype=ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-03 disktype=hdd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 按业务用途打标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-01 workload-type=database&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-02 workload-type=application&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-03 workload-type=application&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 按可用区打标签（如果是多机房部署）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-01 topology.kubernetes.io/zone=zone&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;-a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-02 topology.kubernetes.io/zone=zone-b&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-03 topology.kubernetes.io/zone=zone-c&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU节点标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-gpu-01 accelerator=nvidia-tesla-v100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-gpu-02 accelerator=nvidia-tesla-a100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -L disktype,workload-type,topology.kubernetes.io/zone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签key的命名要有规范，建议用&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt;domain&amp;gt;/&amp;lt;name&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;格式，如&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;company.com/team=backend&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。Kubernetes内置标签用&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubernetes.io&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;和&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;k8s.io&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;前缀，自定义标签不要用这两个前缀。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.2 理解调度流程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kube-scheduler的调度流程分为两个阶段：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预选（Filtering）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：过滤掉不满足条件的节点，比如资源不足、nodeSelector不匹配、taint不容忍等&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优选（Scoring）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：对通过预选的节点打分，选择得分最高的节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看scheduler的调度日志（需要提高日志级别）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修改/etc/kubernetes/manifests/kube-scheduler.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在command中添加 --v=4&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 然后查看日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system kube-scheduler-k8s-master-01 --tail=50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.3 调度策略优先级&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多种调度策略同时存在时的生效顺序：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeName&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（最高优先级）：直接指定节点名，跳过调度器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;taints/tolerations&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：节点污点过滤，不容忍的Pod直接排除&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelector&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：简单的标签匹配过滤&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeAffinity&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：更灵活的节点亲和性规则&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;podAffinity/podAntiAffinity&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Pod间的亲和/反亲和&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologySpreadConstraints&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：拓扑分散约束&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源请求&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：节点剩余资源是否满足Pod的requests&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 核心配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 nodeSelector（最简单的调度约束）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelector是最基础的调度方式，通过标签键值对匹配节点：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：nginx-nodeselector.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx-ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;default&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx-ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx-ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;disktype:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx:1.24&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;128Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;200m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;256Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f nginx-nodeselector.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证Pod只调度到了ssd节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -l app=nginx-ssd -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：nodeSelector是硬约束，如果没有节点匹配标签，Pod会一直Pending。生产环境建议配合nodeAffinity的软约束使用。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 nodeAffinity（节点亲和性）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeAffinity比nodeSelector更灵活，支持多种操作符和软硬约束：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：app-node-affinity.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-with-affinity&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;default&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;6&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-affinity&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-affinity&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 硬约束：必须调度到zone-a或zone-b&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelectorTerms:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;zone-a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;zone-b&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 软约束：优先调度到ssd节点，权重1-100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preferredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;weight:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preference:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;disktype&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;weight:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preference:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;workload-type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;application&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx:1.24&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;200m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;256Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作符说明&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;In&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签值在列表中&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NotIn&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签值不在列表中&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Exists&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签存在（不关心值）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DoesNotExist&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签不存在&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gt&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签值大于指定值（仅限数字）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Lt&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标签值小于指定值（仅限数字）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中的&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;IgnoredDuringExecution&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表示Pod已经运行后，即使节点标签变了也不会驱逐Pod。Kubernetes计划实现&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RequiredDuringExecution&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但目前还没有。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 podAffinity和podAntiAffinity（Pod间亲和/反亲和）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;控制Pod之间的调度关系，典型场景：Web应用和缓存部署在同一节点减少网络延迟，同一服务的多个副本分散到不同节点。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：web-cache-affinity.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web-frontend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;default&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web-frontend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web-frontend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Pod亲和：和redis-cache部署在同一节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preferredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;weight:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAffinityTerm:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;redis-cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Pod反亲和：同一服务的副本分散到不同节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAntiAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web-frontend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;web&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx:1.24&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;200m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;256Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologyKey: kubernetes.io/hostname&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表示以节点为拓扑域，同一节点上的Pod视为同一拓扑域&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologyKey: topology.kubernetes.io/zone&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表示以可用区为拓扑域&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;podAntiAffinity的硬约束会限制副本数不能超过节点数，3个副本至少需要3个节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;警告&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：podAffinity/podAntiAffinity的计算复杂度是O(N^2)，N是集群中的Pod数量。在Pod数量超过5000的大集群中，大量使用podAffinity会导致调度延迟从毫秒级上升到秒级。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 Taints和Tolerations（污点和容忍）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Taints从节点角度排斥Pod，Tolerations从Pod角度容忍污点。两者配合实现节点专用化。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 给GPU节点添加污点，只允许GPU任务调度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes k8s-gpu-01 gpu=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:NoSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes k8s-gpu-02 gpu=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:NoSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 给维护中的节点添加NoExecute污点，驱逐现有Pod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes k8s-worker-03 maintenance=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:NoExecute&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看节点污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node k8s-gpu-01 | grep -A 5 Taints&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes k8s-worker-03 maintenance=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:NoExecute-&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod中配置Tolerations：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：gpu-job.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;batch/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Job&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;gpu-training-job&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ml-training&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 容忍gpu污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;gpu&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Equal&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NoSchedule&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accelerator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nvidia-tesla-v100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;training&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;restartPolicy:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Never&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Taint Effect说明&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NoSchedule&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：新Pod不会调度到该节点，已有Pod不受影响&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PreferNoSchedule&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：尽量不调度，但资源不足时仍可调度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NoExecute&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：新Pod不调度，已有Pod如果不容忍会被驱逐。可以设置&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tolerationSeconds&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指定驱逐前的等待时间&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 容忍NoExecute污点，但最多等待300秒后被驱逐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;maintenance&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Equal&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;effect:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NoExecute&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerationSeconds:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.5 topologySpreadConstraints（拓扑分散约束）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.19版本GA的功能，比podAntiAffinity更精细地控制Pod在拓扑域间的分布：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：app-topology-spread.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-spread&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;default&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;9&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-spread&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-spread&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologySpreadConstraints:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 跨可用区均匀分布，最大偏差1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSkew:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;whenUnsatisfiable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;DoNotSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-spread&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 跨节点均匀分布，最大偏差1，软约束&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSkew:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;whenUnsatisfiable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ScheduleAnyway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app-spread&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx:1.24&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;128Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数说明&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;maxSkew&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：拓扑域间Pod数量的最大差值。设为1表示任意两个域的Pod数量差不超过1&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologyKey&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：拓扑域的标签key&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;whenUnsatisfiable&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：不满足约束时的行为，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DoNotSchedule&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（硬约束）或&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ScheduleAnyway&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（软约束）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9个副本在3个zone中的分布结果：zone-a=3, zone-b=3, zone-c=3。如果zone-c只有1个节点且资源不足，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DoNotSchedule&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;会导致部分Pod Pending，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ScheduleAnyway&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;则会尽量均匀但允许偏差。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.6 PriorityClass（优先级和抢占）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高优先级Pod可以抢占低优先级Pod的资源：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 定义优先级类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;scheduling.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PriorityClass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical-production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1000000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;globalDefault:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;false&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preemptionPolicy:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PreemptLowerPriority&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;生产核心服务，可抢占低优先级Pod&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;scheduling.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PriorityClass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;normal-production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;globalDefault:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preemptionPolicy:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PreemptLowerPriority&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;普通生产服务&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;scheduling.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PriorityClass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;batch-job&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;100000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;globalDefault:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;false&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preemptionPolicy:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Never&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;批处理任务，不抢占其他Pod&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在Pod中引用：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;core-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;core-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;core-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;priorityClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical-production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp:v1.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;警告&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;preemptionPolicy: PreemptLowerPriority&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;会驱逐低优先级Pod来腾出资源，被驱逐的Pod会收到SIGTERM信号。确保应用能正确处理优雅关闭，否则会丢数据。生产环境建议批处理任务设置&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;preemptionPolicy: Never&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 启动和验证&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 验证调度结果&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看Pod调度到了哪个节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -o wide -l app=app-spread&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看Pod的调度事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod &amp;lt;pod-name&amp;gt; | grep -A 10 Events&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看调度失败的原因&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events --field-selector reason=FailedScheduling -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看节点资源分配情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node k8s-worker-01 | grep -A 20&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Allocated resources&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 调度模拟测试&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用kubectl创建一个dry-run的Pod，查看是否能调度成功&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-schedule --image=nginx:1.24 --dry-run=server -o yaml \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --overrides=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;#39;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;spec&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;nodeSelector&amp;quot;: {&amp;quot;disktype&amp;quot;: &amp;quot;ssd&amp;quot;},&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;containers&amp;quot;: [{&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;, &amp;quot;image&amp;quot;: &amp;quot;nginx:1.24&amp;quot;, &amp;quot;resources&amp;quot;: {&amp;quot;requests&amp;quot;: {&amp;quot;cpu&amp;quot;: &amp;quot;100m&amp;quot;, &amp;quot;memory&amp;quot;: &amp;quot;128Mi&amp;quot;}}}]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看各节点的可分配资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o custom-columns=\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAME:.metadata.name,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU_ALLOC:.status.allocatable.cpu,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEM_ALLOC:.status.allocatable.memory,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PODS_ALLOC:.status.allocatable.pods&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.3 验证拓扑分散&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看Pod在各zone的分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -l app=app-spread -o custom-columns=\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAME:.metadata.name,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NODE:.spec.nodeName,\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ZONE:.spec.nodeName&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 更精确的方式：通过节点标签查看&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;pod&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;$(kubectl get pods -l app=app-spread -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.items[*].spec.nodeName}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;);&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; zone=$(kubectl get node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$pod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.metadata.labels.topology\.kubernetes\.io/zone}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Node:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$pod&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, Zone:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$zone&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 完整配置示例&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1.1 多租户节点池隔离方案&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境中不同团队共用一个集群，通过taint+nodeAffinity实现节点池隔离：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：namespace-resource-setup.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第一步：创建团队namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;team-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;team:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Namespace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;team-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;team:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第二步：为每个团队设置ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;team-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;hard:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;20&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;40Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;40&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;80Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;pods:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;data-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;team-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;hard:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;40&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;80Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;80&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;160Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;pods:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点打标签和污点：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# backend团队节点池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-{01..05} node-pool=backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes k8s-worker-{01..05} node-pool=backend:NoSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# data团队节点池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-{06..10} node-pool=data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes k8s-worker-{06..10} node-pool=data:NoSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 公共节点池（不加污点，所有Pod都能调度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-{11..15} node-pool=shared&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;团队Deployment模板：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：backend-app-template.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;team-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;node-pool&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Equal&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NoSchedule&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelectorTerms:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;node-pool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;shared&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAntiAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;preferredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;weight:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAffinityTerm:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend-api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend-api:v2.1.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;500m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;512Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;1Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1.2 调度策略自动注入脚本&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过Kyverno策略自动为特定namespace的Pod注入调度规则，避免每个Deployment都手动配置：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：kyverno-scheduling-policy.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kyverno.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ClusterPolicy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;inject-node-affinity-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;add-backend-scheduling&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;match:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;any:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kinds:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Pod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespaces:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;team-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mutate:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;patchStrategicMerge:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;node-pool&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Equal&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;value:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NoSchedule&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelectorTerms:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;node-pool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;shared&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Kyverno需要单独安装（&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;helm install kyverno kyverno/kyverno -n kyverno --create-namespace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;）。这种方式比在每个Deployment里写调度规则更易维护，团队只需要关注业务配置，调度策略由平台团队统一管理。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 实际应用案例&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;案例一：数据库Pod的调度策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景描述&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：MySQL主从集群部署在K8s中，主库需要SSD+高内存节点，从库可以用普通节点。主从Pod不能在同一节点上，避免节点故障导致主从同时不可用。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现代码&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：mysql-master-statefulset.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;StatefulSet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-master&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;database&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;serviceName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-master&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;role:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;master&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;role:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;master&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;priorityClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical-production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelectorTerms:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;disktype&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;workload-type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;database&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAntiAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql:8.0.35&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3306&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;env:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;MYSQL_ROOT_PASSWORD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;valueFrom:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;secretKeyRef:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-secret&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;root-password&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;4Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;8Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/var/lib/mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeClaimTemplates:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;ReadWriteOnce&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;local-ssd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;100Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# MySQL从库&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;StatefulSet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-slave&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;database&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;serviceName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-slave&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;role:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;slave&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;role:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;slave&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;priorityClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;normal-production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAntiAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;app&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologySpreadConstraints:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSkew:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;whenUnsatisfiable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;DoNotSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;role:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;slave&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql:8.0.35&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3306&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;4Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeMounts:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;mountPath:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/var/lib/mysql&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;volumeClaimTemplates:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;accessModes:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;ReadWriteOnce&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storageClassName:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;standard&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;storage:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;100Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行结果&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; READY &amp;nbsp; STATUS &amp;nbsp; &amp;nbsp;NODE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ZONE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mysql-master-0 &amp;nbsp; 1/1 &amp;nbsp; &amp;nbsp; Running &amp;nbsp; k8s-worker-01 &amp;nbsp; zone&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;-a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; (SSD+database节点)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mysql-slave-0 &amp;nbsp; &amp;nbsp;1/1 &amp;nbsp; &amp;nbsp; Running &amp;nbsp; k8s-worker-02 &amp;nbsp; zone-b &amp;nbsp; &amp;nbsp;(不同节点不同zone)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mysql-slave-1 &amp;nbsp; &amp;nbsp;1/1 &amp;nbsp; &amp;nbsp; Running &amp;nbsp; k8s-worker-03 &amp;nbsp; zone-c &amp;nbsp; &amp;nbsp;(不同节点不同zone)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;案例二：混合调度策略实现&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1773910337287-0.21815180341641982&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;灰度发布&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景描述&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：灰度发布时，新版本Pod先调度到特定的灰度节点，验证通过后再扩展到所有节点。通过标签和调度策略控制灰度范围。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;给灰度节点打标签：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-01 canary=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灰度版本Deployment：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：app-canary.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp-canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;affinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nodeSelectorTerms:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchExpressions:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;In&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;values:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp:v2.0.0-rc1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;ports:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containerPort:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;200m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;256Mi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灰度验证通过后，全量发布：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 移除灰度节点约束，更新稳定版Deployment的镜像&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;image deployment/myapp-stable myapp=myapp:v2.0.0 -n production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缩容灰度Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl scale deployment/myapp-canary --replicas=0 -n production&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理灰度标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node k8s-worker-01 canary-&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 性能优化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;减少podAffinity的使用范围&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：podAffinity/podAntiAffinity的调度计算复杂度高，在500+节点集群中，一个带podAffinity的Pod调度耗时从5ms增加到200ms。能用topologySpreadConstraints替代的场景优先用topologySpreadConstraints。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不推荐：用podAntiAffinity实现分散&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;podAntiAffinity:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推荐：用topologySpreadConstraints替代&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologySpreadConstraints:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;maxSkew:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;topologyKey:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;whenUnsatisfiable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;DoNotSchedule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labelSelector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;合理设置resource requests&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：调度器根据requests而非limits做调度决策。requests设太高导致节点利用率低（实测平均CPU利用率只有15%），设太低导致节点超卖严重，Pod被OOMKill。建议requests设为实际使用量的P95值。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看Pod实际资源使用，作为requests设置参考&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pods -n production --sort-by=cpu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pods -n production --sort-by=memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用Descheduler重平衡&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：节点扩容或Pod漂移后，集群负载可能不均衡。Descheduler可以驱逐不符合当前调度策略的Pod，让调度器重新调度。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 安装Descheduler&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;helm repo add descheduler https://kubernetes-sigs.github.io/descheduler/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;helm install descheduler descheduler/descheduler -n kube-system \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;schedule=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*/5 * * * *&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 安全加固&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限制nodeName直接指定&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：nodeName会跳过调度器的所有检查（包括资源检查），生产环境通过RBAC限制普通用户使用nodeName字段。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OPA/Gatekeeper策略：禁止使用nodeName&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;constraints.gatekeeper.sh/v1beta1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;K8sDenyNodeName&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;deny-nodename&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;match:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kinds:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroups:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kinds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;Pod&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;excludedNamespaces:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;kube-system&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PriorityClass权限控制&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：高优先级PriorityClass的创建和使用需要限制，防止普通用户创建高优先级Pod抢占核心服务资源。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# RBAC：只允许admin使用critical-production优先级&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ClusterRole&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;use-critical-priority&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiGroups:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;scheduling.k8s.io&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;priorityclasses&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resourceNames:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;critical-production&amp;quot;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;verbs:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;get&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;list&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点污点防篡改&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：关键节点（如GPU节点）的污点被误删会导致普通Pod涌入。通过准入控制webhook拦截对特定节点taint的修改操作。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 高可用配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HA方案一&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：核心服务至少3副本，配合podAntiAffinity硬约束分散到不同节点，再用topologySpreadConstraints分散到不同可用区&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HA方案二&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用PodDisruptionBudget（PDB）限制同时不可用的Pod数量，防止节点维护时服务中断&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;policy/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PodDisruptionBudget&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp-pdb&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;minAvailable:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;selector:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;matchLabels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份策略&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：调度策略配置（PriorityClass、节点标签、污点）纳入GitOps管理，用ArgoCD或FluxCD同步&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 配置注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;警告&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：调度策略配置错误可能导致Pod无法调度或调度到错误节点，修改前在测试环境验证。&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;nodeAffinity的&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;requiredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中，多个&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelectorTerms&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;之间是OR关系，同一个&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelectorTerm&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中的多个&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;matchExpressions&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;之间是AND关系。搞混了会导致调度结果不符合预期。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;podAntiAffinity硬约束会限制副本数上限。如果&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologyKey&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubernetes.io/hostname&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，副本数不能超过可用节点数，否则多出来的Pod永远Pending。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;topologySpreadConstraints的&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;labelSelector&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;必须和Pod自身的标签匹配，否则约束不生效。这个错误很隐蔽，Pod能正常调度但分布不均匀。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.2 常见错误&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误现象&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod一直Pending，事件显示&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0/6 nodes are available&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeSelector或nodeAffinity没有匹配的节点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查节点标签是否正确：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes --show-labels&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod调度成功但分布不均匀&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologySpreadConstraints的labelSelector写错&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认labelSelector和Pod的labels完全一致&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高优先级Pod抢占后，被抢占的Pod无法重新调度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;集群资源不足，被抢占的Pod也找不到合适节点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扩容节点或降低resource requests&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;taint添加后已有Pod没被驱逐&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用了NoSchedule而非NoExecute&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NoSchedule只影响新Pod，要驱逐已有Pod用NoExecute&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点维护drain失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod有PDB限制，minAvailable不满足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先扩容副本数，或临时调整PDB的minAvailable&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.3 兼容性问题&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本兼容&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：topologySpreadConstraints在1.18 Beta、1.19 GA；&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;minDomains&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;字段在1.25 Beta，使用前确认集群版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;平台兼容&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：云厂商托管K8s通常自动设置&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标签，自建集群需要手动设置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件依赖&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Descheduler版本需要和K8s版本匹配，0.27.x支持K8s 1.25-1.28&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 故障排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.1 日志查看&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看kube-scheduler日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system -l component=kube-scheduler --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看调度事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -A --field-selector reason=FailedScheduling --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看特定Pod的调度事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt; | grep -A 20 Events&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看节点资源分配详情&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt; | grep -A 30&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Allocated resources&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.2 常见问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题一：Pod Pending，报&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; overflow-wrap: break-word; font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; box-sizing: border-box !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Insufficient cpu&lt;/span&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 诊断命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Events&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o custom-columns=NAME:.metadata.name,CPU_REQ:.status.allocatable.cpu,MEM_REQ:.status.allocatable.memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看各节点已分配资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;$(kubectl get nodes -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.items[*].metadata.name}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;);&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;===&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$node&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;===&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; kubectl describe node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$node&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Allocated resources&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查Pod的resource requests是否设置过高&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查节点是否有足够的可分配资源（allocatable - 已分配）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;考虑扩容节点或优化现有Pod的资源配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题二：调度策略不生效，Pod没有按预期分布&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 诊断命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod &amp;lt;pod-name&amp;gt; -o yaml | grep -A 50&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;affinity&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod &amp;lt;pod-name&amp;gt; -o yaml | grep -A 20&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;topologySpreadConstraints&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查节点标签是否正确&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes --show-labels | grep &amp;lt;expected-label&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认YAML缩进正确，affinity字段层级关系容易写错&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认labelSelector和Pod标签一致&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply --dry-run=server&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证YAML语法&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题三：节点drain卡住不动&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(248, 57, 41); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;命令长时间无响应&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; overflow-x: auto; color: rgb(171, 178, 191); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; word-break: break-all; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看哪些Pod阻止了drain&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain &amp;lt;node&amp;gt; --ignore-daemonsets --delete-emptydir-data --dry-run=client&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查PDB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pdb -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DaemonSet的Pod加&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--ignore-daemonsets&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;跳过&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用emptyDir的Pod加&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--delete-emptydir-data&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PDB限制导致的，先扩容副本再drain&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有Pod设置了&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;terminationGracePeriodSeconds&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很长，加&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--timeout=300s&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限制等待时间&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.3 调试模式&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 提高scheduler日志级别&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 编辑/etc/kubernetes/manifests/kube-scheduler.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在command中添加 --v=10（最详细，仅调试用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看scheduler的调度决策过程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system kube-scheduler-k8s-master-01 | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;pod-name&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用kubectl-scheduler-simulator模拟调度（需要单独安装）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# https://github.com/kubernetes-sigs/kube-scheduler-simulator&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看scheduler的metrics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 性能监控&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.1 关键指标监控&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调度延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get --raw /metrics | grep scheduler_scheduling_algorithm_duration_seconds&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调度队列长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get --raw /metrics | grep scheduler_pending_pods&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 抢占次数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get --raw /metrics | grep scheduler_preemption_victims&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 节点资源使用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.2 监控指标说明&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指标名称&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常范围&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;告警阈值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度延迟(P99)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt;100ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;500ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超过500ms说明调度器过载或策略过于复杂&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pending Pod数量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;10持续5分钟&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;持续有Pod无法调度需要排查&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度失败率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt;1%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;5%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高失败率说明资源不足或策略配置有问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点CPU分配率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;40%-70%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;85%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分配率过高会导致新Pod无法调度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点内存分配率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;50%-80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;90%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接近100%时需要扩容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;抢占事件数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;5次/小时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;频繁抢占说明资源规划不合理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.3 Prometheus监控规则&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：scheduler-alerts.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;monitoring.coreos.com/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PrometheusRule&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;scheduler-alerts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;namespace:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;monitoring&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;kube-scheduler&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;SchedulerHighLatency&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; histogram_quantile(0.99,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum(rate(scheduler_scheduling_algorithm_duration_seconds_bucket[5m])) by (le)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &amp;gt; 0.5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Scheduler P99 latency exceeds 500ms&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;PodsPendingTooLong&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum(scheduler_pending_pods{queue=&amp;quot;active&amp;quot;}) &amp;gt; 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;More than 10 pods pending for over 5 minutes&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;SchedulerUnhealthy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;absent(up{job=&amp;quot;kube-scheduler&amp;quot;}&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;3m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;kube-scheduler is not running&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NodeHighAllocation&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (1 - sum(kube_node_status_allocatable{resource=&amp;quot;cpu&amp;quot;} - kube_pod_container_resource_requests{resource=&amp;quot;cpu&amp;quot;}) by (node)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; / sum(kube_node_status_allocatable{resource=&amp;quot;cpu&amp;quot;}) by (node)) &amp;gt; 0.85&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.node }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;CPU allocation exceeds 85%&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;FrequentPreemption&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; increase(scheduler_preemption_victims[1h]) &amp;gt; 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;More than 5 preemption events in the last hour&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 备份与恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 备份策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调度策略配置备份脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件：/opt/scripts/scheduling-config-backup.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;/data/scheduling-backup/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date +%Y%m%d)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份PriorityClass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get priorityclass -o yaml &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/priorityclasses.yaml&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份PDB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pdb -A -o yaml &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/pdbs.yaml&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份节点标签和污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;$(kubectl get nodes -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.items[*].metadata.name}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;);&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; kubectl get node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$node&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.metadata.labels}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${node}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-labels.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; kubectl get node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$node&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.spec.taints}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${node}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-taints.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份Kyverno策略（如果使用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get clusterpolicy -o yaml &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/kyverno-policies.yaml&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;] Scheduling config backup completed:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.2 恢复流程&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;停止服务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：暂停业务部署，避免恢复过程中的调度冲突&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;恢复数据&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply -f ${BACKUP_DIR}/priorityclasses.yaml&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证完整性&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get priorityclass&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认PriorityClass恢复&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;恢复节点配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：逐节点恢复标签和污点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证调度&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：创建测试Pod验证调度策略是否生效&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;要点一&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：nodeSelector适合简单场景，nodeAffinity适合需要软硬约束结合的场景，两者都基于节点标签，标签规划是基础&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;要点二&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：podAntiAffinity硬约束会限制副本数不超过节点数，大规模集群中计算开销大，优先用topologySpreadConstraints替代&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;要点三&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：taints/tolerations从节点角度控制调度，适合节点专用化场景（GPU节点、数据库节点），NoExecute会驱逐已有Pod&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;要点四&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：PriorityClass的抢占机制要谨慎使用，批处理任务设置&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;preemptionPolicy: Never&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，核心服务设置高优先级&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;要点五&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：topologySpreadConstraints是生产环境跨故障域部署的首选方案，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;maxSkew: 1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配合&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DoNotSchedule&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保证严格均匀分布&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自定义调度器&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：当内置调度策略无法满足需求时，可以开发自定义调度器，通过Scheduling Framework扩展点实现&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;学习资源：Scheduling Framework&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实践建议：先用调度器扩展（Extender）验证逻辑，再考虑写Framework插件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Descheduler深度使用&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：配置LowNodeUtilization、RemoveDuplicates等策略，自动重平衡集群负载&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;学习资源：Descheduler GitHub&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实践建议：先在非生产环境测试Descheduler策略，避免误驱逐核心服务&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Volcano批调度器&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：针对AI/大数据场景的批调度器，支持Gang Scheduling（一组Pod要么全部调度成功，要么全部不调度）&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes调度官方文档 - 调度机制全面说明&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kube-scheduler源码 - 理解调度算法实现&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Descheduler项目 - Pod重调度工具&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Volcano项目 - 批调度器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: linear-gradient(90deg, rgba(248, 57, 41, 0) 0%, rgba(248, 57, 41, 0.75) 51.79%, rgba(248, 57, 41, 0) 100%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px 0px 0px 10px; outline: 0px; max-width: 100%; font-size: 18px; color: #222222; line-height: 1.8em; letter-spacing: 0em; border-style: none none none solid; border-width: 1px 1px 1px 5px; border-color: #000000 #000000 #000000 #F83929; border-radius: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 命令速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 节点标签管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node &amp;lt;node&amp;gt; key=value &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node &amp;lt;node&amp;gt; key=value --overwrite &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修改标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl label node &amp;lt;node&amp;gt; key- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes --show-labels &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看所有标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -L key1,key2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看指定标签列&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 污点管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes &amp;lt;node&amp;gt; key=value:NoSchedule &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes &amp;lt;node&amp;gt; key=value:NoSchedule- &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint nodes &amp;lt;node&amp;gt; key- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除指定key的所有污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node&amp;gt; | grep Taints &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看污点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调度排查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events --field-selector reason=FailedScheduling -A &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调度失败事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod &amp;lt;pod&amp;gt; | grep -A 10 Events &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Pod事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -o wide &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看Pod所在节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 节点资源使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node&amp;gt; | grep -A 20&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Allocated resources&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 已分配资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 节点维护&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain &amp;lt;node&amp;gt; --ignore-daemonsets --delete-emptydir-data &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 腾空节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl uncordon &amp;lt;node&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 恢复调度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl cordon &amp;lt;node&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 标记不可调度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. 配置参数详解&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodeAffinity操作符&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作符&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;含义&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;In&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;值在列表中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;values: [&amp;quot;ssd&amp;quot;, &amp;quot;nvme&amp;quot;]&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NotIn&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;值不在列表中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;values: [&amp;quot;hdd&amp;quot;]&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Exists&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标签存在&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不需要values字段&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DoesNotExist&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标签不存在&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不需要values字段&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gt&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;值大于&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;values: [&amp;quot;100&amp;quot;]&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（数字字符串）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Lt&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;值小于&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;values: [&amp;quot;50&amp;quot;]&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（数字字符串）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Taint Effect对比&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Effect&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对新Pod&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对已有Pod&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NoSchedule&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不调度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不影响&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点专用化&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PreferNoSchedule&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;尽量不调度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不影响&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;软限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NoExecute&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不调度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;驱逐&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点维护、故障隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(53, 53, 53); line-height: 1.8em; letter-spacing: 0.04em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(248, 57, 41); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologySpreadConstraints参数&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;maxSkew&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;int&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;拓扑域间Pod数量最大差值，1表示严格均匀&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;topologyKey&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;拓扑域标签key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;whenUnsatisfiable&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DoNotSchedule&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;硬约束 /&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ScheduleAnyway&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;软约束&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;labelSelector&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;object&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;匹配Pod的标签选择器&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;minDomains&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;int&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最少拓扑域数量（1.25 Beta）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;matchLabelKeys&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[]string&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用于区分不同版本的Pod（1.27 Beta）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: flex;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;C. 术语表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;术语&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(219, 217, 216); max-width: 100%; color: rgb(53, 53, 53); line-height: 1.5em; letter-spacing: 0.04em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解释&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预选&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Filtering&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度第一阶段，过滤不满足条件的节点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优选&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Scoring&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度第二阶段，对候选节点打分排序&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;亲和性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Affinity&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod倾向于调度到满足条件的节点或Pod附近&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反亲和性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Anti-Affinity&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod倾向于远离满足条件的Pod&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;污点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Taint&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点上的排斥标记，阻止不容忍的Pod调度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容忍&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Toleration&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod上的声明，表示可以容忍节点的污点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;拓扑域&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Topology Domain&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按标签划分的节点组，如同一可用区的节点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;抢占&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Preemption&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高优先级Pod驱逐低优先级Pod以获取资源&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(53, 53, 53); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PDB&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PodDisruptionBudget&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod中断预算，限制同时不可用的Pod数量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/03/202603191654205068764.png&quot; alt=&quot;image.png&quot; width=&quot;525&quot; height=&quot;175&quot; style=&quot;width: 525px; height: 175px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Tue, 03 Mar 2026 16:51:33 +0800</pubDate></item><item><title>HAProxy ACL规则实战：动态路由与流量分发</title><link>https://www.docker.top/?id=454</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/02/202602281105308717790.jpg&quot; alt=&quot;cbb933ef6e0f87eca85e899f23617da7.jpg&quot; width=&quot;683&quot; height=&quot;413&quot; style=&quot;width: 683px; height: 413px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; data-website=&quot;https://www.mdnice.com&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px 10px; outline: 0px; max-width: 100%; overflow-wrap: break-word; word-spacing: 0em; text-wrap: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; line-height: 1.5em; letter-spacing: 0em; word-break: break-word; visibility: visible; box-sizing: border-box !important;&quot;&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 24px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1772247841078-0.5077678941119512&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;ACL规则&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实战：动态路由与流量分发&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;ACL（Access Control List）是HAProxy最强大的功能之一，不仅仅是访问控制，更是实现复杂流量调度的核心武器。在微服务架构和多租户场景下，我们经常需要根据请求的各种特征（域名、路径、Header、Cookie、IP等）把流量路由到不同的后端。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;我接触HAProxy ACL是在2018年，当时需要做一个API网关，要实现：不同域名走不同后端、同一域名不同路径走不同服务、还要支持&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1772247841076-0.21730831517786342&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;灰度发布&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。当时觉得用Nginx的location和if语句太费劲，朋友推荐了HAProxy的ACL，用了之后就再也离不开了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;HAProxy ACL的表达能力非常强，正则匹配、IP段匹配、请求头匹配、Cookie匹配都支持，而且可以组合使用。配合use_backend指令，可以实现非常灵活的路由策略。&lt;/span&gt;&lt;/p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;HAProxy ACL的几个核心特点：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;声明式规则&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：ACL是声明式的，先定义条件，再使用条件。代码可读性比if-else好得多。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;丰富的匹配方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：支持字符串精确匹配、前缀匹配、后缀匹配、正则匹配、IP段匹配等。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灵活的取值方法&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：可以从请求的任何部分取值——URL、Header、Cookie、Query参数、POST数据等。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;条件组合&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：支持AND、OR、NOT组合多个ACL条件。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行时更新&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：通过Runtime API可以动态更新ACL规则，不需要reload配置。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ACL条件示例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多域名路由&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不同域名路由到不同后端&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(host) -i api.company.com&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径路由&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不同URL路径路由到不同服务&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_beg /api/v1/users&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灰度发布&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按比例或按特征分流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(X-Gray) -i true&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A/B测试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按用户特征分流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cook(user_group) -i group_a&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;蓝绿部署&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;新旧版本切换&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(X-Version) -i v2&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;IP白名单&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限制访问来源&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src 192.168.0.0/16&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求限流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按条件限流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src_http_req_rate() gt 100&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;维护模式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;特定条件展示维护页&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nbsrv(backend) lt 1&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.4 环境要求&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.0.5+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐使用最新稳定版&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Rocky Linux 9.4 / Ubuntu 24.04 LTS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;socat&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.7.4+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用于Runtime API通信&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 准备工作&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.1 ACL基础语法&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy ACL的基本语法：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl &amp;lt;名称&amp;gt; &amp;lt;条件&amp;gt; [标志] [匹配值]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;条件（Fetch）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：从请求中提取数据&lt;/span&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标志（Flag）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：修改匹配行为&lt;/span&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;匹配值（Pattern）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：要匹配的值&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用条件（Fetch）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# URL路径（不含查询参数）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_beg &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路径前缀&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_end &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路径后缀&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_sub &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路径包含&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_reg &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路径正则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;url &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 完整URL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;url_param &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# URL参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Header相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(name) &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 指定请求头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr_beg(name) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求头前缀&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr_end(name) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求头后缀&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr_sub(name) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求头包含&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr_reg(name) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求头正则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Cookie相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cook(name) &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 指定Cookie值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cook_sub(name)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Cookie包含&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 来源相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 客户端IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src_port &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 客户端端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 后端相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nbsrv(backend)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 后端可用服务器数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# SSL相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_fc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 是否SSL连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_fc_sni &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# SNI主机名&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;method &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP方法（GET/POST等）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 其他&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;always_true &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 永真&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;always_false &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 永假&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用标志（Flag）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-i &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 忽略大小写&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-f &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从文件读取匹配值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 指定匹配方法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m str &amp;nbsp;字符串匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m beg &amp;nbsp;前缀匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m end &amp;nbsp;后缀匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m sub &amp;nbsp;包含匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m reg &amp;nbsp;正则匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m found &amp;nbsp;存在即匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# -m len &amp;nbsp;长度匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.2 ACL使用方式&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定义好ACL后，可以在以下指令中使用：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路由选择&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend &amp;lt;backend&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend &amp;lt;backend&amp;gt; unless &amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;default_backend &amp;lt;backend&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request deny&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request allow&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request redirect location &amp;lt;url&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header &amp;lt;name&amp;gt; &amp;lt;value&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request add-header &amp;lt;name&amp;gt; &amp;lt;value&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request del-header &amp;lt;name&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request replace-path &amp;lt;regex&amp;gt; &amp;lt;replacement&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 响应处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header &amp;lt;name&amp;gt; &amp;lt;value&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tcp-request connection reject&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tcp-request content reject&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;acl&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 核心配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 多域名路由&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是最常见的场景——不同域名路由到不同后端：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/haproxy.cfg&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 多域名路由配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;global&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/dev/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;local0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; user haproxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; group haproxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; daemon&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; maxconn 50000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats socket /run/haproxy/admin.sock mode 660 level admin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;defaults&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; mode http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;global&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout connect 5s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout client 30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout server 30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httplog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option forwardfor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 前端：统一接收所有请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:443 ssl crt /etc/haproxy/certs/ alpn h2,http/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 定义域名ACL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_api hdr(host) -i api.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_web hdr(host) -i www.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_admin hdr(host) -i admin.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_static hdr(host) -i static.company.com cdn.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 支持带端口的Host头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_api_port hdr_beg(host) -i api.company.com:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_web_port hdr_beg(host) -i www.company.com:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路由规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_api or host_api_port&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend web_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_web or host_web_port&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend admin_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_admin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend static_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_static&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend web_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-check expect status 200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api1 192.168.1.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api2 192.168.1.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Web后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend web_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web1 192.168.1.21:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web2 192.168.1.22:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Admin后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend admin_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Admin只允许内网访问&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl internal_network src 192.168.0.0/16 10.0.0.0/8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny unless internal_network&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server admin1 192.168.1.31:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 静态资源后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend static_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 静态资源启用缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header Cache-Control&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;public, max-age=86400&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server static1 192.168.1.41:80 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server static2 192.168.1.42:80 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 路径路由&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根据URL路径路由到不同后端，微服务网关必备：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路径路由配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路径ACL - 注意优先级：更具体的规则放前面&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api_users path_beg /api/v1/users&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api_orders path_beg /api/v1/orders&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api_products path_beg /api/v1/products&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api path_beg /api/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_static path_beg /static/ /assets/ /images/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_ws path_beg /ws/ /websocket/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_health path -i /health /healthz /ready&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 静态文件扩展名&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_static_file path_end .js .css .png .jpg .gif .ico .woff .woff2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket升级&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_websocket hdr(Upgrade) -i websocket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路由规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend ws_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_ws or is_websocket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend user_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api_users&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend order_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api_orders&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend product_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api_products&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_gateway&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend static_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_static or is_static_file&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查直接返回&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;status 200 content-type&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;string&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OK&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend web_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend ws_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 同一客户端保持连接到同一后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option http-server-close&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket需要更长的超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout server 1h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout tunnel 1h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ws1 192.168.1.51:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ws2 192.168.1.52:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend user_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server user1 192.168.1.61:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server user2 192.168.1.62:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 订单服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend order_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server order1 192.168.1.71:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server order2 192.168.1.72:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 商品服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend product_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server product1 192.168.1.81:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server product2 192.168.1.82:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 Header路由&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根据请求头路由，常用于灰度发布、版本控制：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Header路由配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度标记ACL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl gray_header hdr(X-Gray-Release) -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl gray_cookie cook(gray) -i 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl gray_user hdr_sub(X-User-ID) gray_&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 版本控制ACL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl version_v2 hdr(X-API-Version) -i v2 2.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl version_v3 hdr(X-API-Version) -i v3 3.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 客户端类型ACL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_mobile hdr_sub(User-Agent) -i mobile android iphone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_bot hdr_sub(User-Agent) -i bot spider crawler&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 内部请求ACL（来自其他服务）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_internal hdr(X-Internal-Request) -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优先级用户ACL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_vip hdr(X-User-Level) -i vip premium&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路由规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度用户走灰度环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend gray_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;gray_header or gray_cookie or gray_user&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不同API版本走不同后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_v2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;version_v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_v3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;version_v3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 移动端专属后端（可能有特殊优化）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend mobile_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_mobile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# VIP用户走高优先级后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend vip_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_vip&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 爬虫限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_bot&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend api_v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend gray_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server gray1 192.168.10.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server gray2 192.168.10.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API V2后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v2_1 192.168.11.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v2_2 192.168.11.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API V3后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_v3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v3_1 192.168.12.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v3_2 192.168.12.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# VIP专属后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend vip_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 更多资源，更高权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server vip1 192.168.20.11:8080 check weight 100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server vip2 192.168.20.12:8080 check weight 100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 流量分发（灰度/A/B测试）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按比例分发流量，实现灰度发布和&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1772247841078-0.21724872269260542&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;A/B测试&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 流量分发配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法1：使用随机数实现按比例分流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# rand(100) 生成0-99的随机数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_canary rand(100) lt 10 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 10%流量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法2：基于请求头的Hash分流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用用户ID的hash值确保同一用户始终走同一版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_by_hash req.hdr(X-User-ID),crc32,mod(100) lt 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法3：基于Cookie分流（手动设置灰度标记）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_by_cookie cook(canary_group) -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方法4：基于IP段分流（内部测试）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_by_ip src 192.168.100.0/24&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 组合条件：任一条件满足即走灰度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;canary_by_cookie&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;canary_by_ip&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;canary_by_hash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend stable_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 稳定版后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend stable_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server stable1 192.168.1.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server stable2 192.168.1.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server stable3 192.168.1.13:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度版后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend canary_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度环境资源较少&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server canary1 192.168.2.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server canary2 192.168.2.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;动态调整灰度比例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（不需要reload）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# adjust_canary_ratio.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 动态调整灰度比例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOCKET=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/run/haproxy/admin.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 获取当前配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;get_current_ratio&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show acl&amp;nbsp;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkqo3mtc-5vuf1l&quot; data-topic=&quot;1&quot; link-id=&quot;edf3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#0&lt;/a&gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置灰度比例（需要使用map方式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 这种方式需要在配置中使用map文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;set_canary_ratio&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ratio=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set map /etc/haproxy/canary_ratio.map default&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ratio&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实际生产中更推荐使用server权重调整&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 通过调整各后端的权重来实现流量比例控制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;adjust_by_weight&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;canary_percent=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;stable_percent=$((100 - canary_percent))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;设置灰度比例:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${canary_percent}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;%&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调整稳定版后端权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set server stable_servers/stable1 weight&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$stable_percent&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set server stable_servers/stable2 weight&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$stable_percent&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调整灰度版后端权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set server canary_servers/canary1 weight&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$canary_percent&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set server canary_servers/canary2 weight&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$canary_percent&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; get)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; get_current_ratio&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; adjust_by_weight&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; *)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;用法:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{get|set &amp;lt;percent&amp;gt;}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;示例:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;set 20 &amp;nbsp;# 设置20%灰度流量&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;esac&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更灵活的基于map的灰度配置：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/haproxy.cfg&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 基于map文件的灰度配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用map文件存储灰度配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# map文件格式：key value&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 可以运行时更新&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 根据用户ID查map决定路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果在map中找到用户ID，值为canary则走灰度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.user_id) hdr(X-User-ID)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.canary) var(req.user_id),map(/etc/haproxy/maps/user_canary.map,stable)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_canary var(req.canary) -m str canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend stable_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Map文件：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/maps/user_canary.map&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 格式：用户ID 路由目标&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 可以运行时用 set map 命令更新&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user_001 canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user_002 canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user_003 canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ... 更多灰度用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行时更新map：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加灰度用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;add map /etc/haproxy/maps/user_canary.map user_004 canary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; socat stdio /run/haproxy/admin.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 移除灰度用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;del map /etc/haproxy/maps/user_canary.map user_001&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; socat stdio /run/haproxy/admin.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看map内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show map /etc/haproxy/maps/user_canary.map&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; socat stdio /run/haproxy/admin.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 启动和验证&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 配置验证&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# verify_acl_config.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ACL配置验证脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CONFIG_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/haproxy/haproxy.cfg&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOCKET=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/run/haproxy/admin.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== HAProxy ACL配置验证 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 语法检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[1] 检查配置语法...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;haproxy -c -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$CONFIG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp; &amp;nbsp;配置语法正确&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp; &amp;nbsp;配置语法错误！&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查ACL定义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[2] 已定义的ACL:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^\s*acl\s+&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$CONFIG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print &amp;quot; &amp;nbsp; &amp;nbsp;&amp;quot; $2 &amp;quot; -&amp;gt; &amp;quot; $3}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查路由规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[3] 路由规则:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^\s*(use_backend|default_backend)&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$CONFIG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sed&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/^[ \t]*/ &amp;nbsp; &amp;nbsp;/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查运行状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[4] 运行时ACL状态:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -S&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$SOCKET&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show acl&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp; &amp;nbsp;HAProxy socket不可用，跳过运行时检查&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查map文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[5] Map文件检查:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;map_file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/haproxy/maps/*.map;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$map_file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; entries=$(wc -l &amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$map_file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$map_file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$entries&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;条记录&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 路由测试&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# test_acl_routing.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ACL路由规则测试脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BASE_URL=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://127.0.0.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== ACL路由测试 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试函数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;test_route&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;description=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;curl_args=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;expected=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;测试:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$description&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;... &amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; response=$(curl -s -o /dev/null -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%{http_code}&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$curl_args&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BASE_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$response&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$expected&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;PASS (HTTP&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$response&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;FAIL (期望&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$expected&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, 实际&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$response&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试域名路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 域名路由测试 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;api.company.com&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: api.company.com&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;www.company.com&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: www.company.com&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;unknown.company.com&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: unknown.company.com&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 走默认后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试路径路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 路径路由测试 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/api/v1/users&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: api.company.com&amp;#39; -X GET&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/api/v1/orders&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: api.company.com&amp;#39; -X GET&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/static/logo.png&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: www.company.com&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试Header路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- Header路由测试 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;灰度标记&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: api.company.com&amp;#39; -H &amp;#39;X-Gray-Release: true&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;API版本V2&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: api.company.com&amp;#39; -H &amp;#39;X-API-Version: v2&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;test_route&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;VIP用户&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-H &amp;#39;Host: api.company.com&amp;#39; -H &amp;#39;X-User-Level: vip&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试IP限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- IP限制测试 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 这个测试需要从不同IP发起，这里只是示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# test_route &amp;quot;内网访问Admin&amp;quot; &amp;quot;-H &amp;#39;Host: admin.company.com&amp;#39;&amp;quot; &amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 详细测试（查看实际路由到哪个后端）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--- 详细路由信息 ---&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;测试请求详情:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v -s -o /dev/null \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Host: api.company.com&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;X-Gray-Release: true&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BASE_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/api/v1/users&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;lt; |&amp;gt; &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 完整配置示例&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1.1 企业级API网关配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是一个完整的企业级API网关配置，包含了常用的ACL场景：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/haproxy.cfg&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 企业级API网关配置 - HAProxy 3.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Global settings&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;global&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/dev/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;local0 info&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/dev/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;local1 notice&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; chroot /var/lib/haproxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats timeout 30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; user haproxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; group haproxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; daemon&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 性能优化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; maxconn 100000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; nbthread 4&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# SSL优化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tune.ssl.default-dh-param 2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Default settings&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;defaults&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; mode http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;global&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httplog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option dontlognull&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option http-server-close&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option forwardfor except 127.0.0.0/8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option redispatch&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; retries 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout http-request 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout queue 30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout connect 5s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout client 30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout server 30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout http-keep-alive 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout check 5s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误页面&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 400 /etc/haproxy/errors/400.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 403 /etc/haproxy/errors/403.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 408 /etc/haproxy/errors/408.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 500 /etc/haproxy/errors/500.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 502 /etc/haproxy/errors/502.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 503 /etc/haproxy/errors/503.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errorfile 504 /etc/haproxy/errors/504.http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Stats frontend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend stats&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:8404&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; mode http&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats uri /stats&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats refresh 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats admin&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;TRUE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stats show-legends&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Main HTTP/HTTPS frontend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:443 ssl crt /etc/haproxy/certs/company.pem alpn h2,http/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 通用ACL定义 =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求方法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_get method GET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_post method POST&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_options method OPTIONS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# SSL检测&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_https ssl_fc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 安全相关ACL =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 内网IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl internal_network src 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 黑名单IP（从文件读取）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl blocked_ips src -f /etc/haproxy/blacklist.ips&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 恶意User-Agent&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl bad_bots hdr_sub(User-Agent) -i -f /etc/haproxy/bad_bots.txt&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# SQL注入检测（基础）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl sql_injection url_sub -i select union insert drop delete update&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# XSS检测（基础）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl xss_attack url_sub -i &amp;lt;script javascript:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 域名路由ACL =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_api hdr(host) -i api.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_web hdr(host) -i www.company.com company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_admin hdr(host) -i admin.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_ws hdr(host) -i ws.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl host_static hdr(host) -i static.company.com cdn.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 路径路由ACL =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API版本路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api_v1 path_beg /api/v1/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api_v2 path_beg /api/v2/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api_v3 path_beg /api/v3/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 微服务路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_user_service path_beg /api/v1/users /api/v2/users&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_order_service path_beg /api/v1/orders /api/v2/orders&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_product_service path_beg /api/v1/products /api/v2/products&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_payment_service path_beg /api/v1/payments&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_notification_service path_beg /api/v1/notifications&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 特殊路径&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_health path -i /health /healthz /ready /live&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_metrics path -i /metrics /prometheus&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_swagger path_beg /swagger /api-docs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 静态资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_static path_beg /static/ /assets/ /public/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_static_file path_end .js .css .png .jpg .jpeg .gif .ico .svg .woff .woff2 .ttf .eot&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_websocket path_beg /ws/ /websocket/ /socket.io/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_websocket hdr(Upgrade) -i websocket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 灰度发布ACL =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Header标记&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_header hdr(X-Canary) -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_header_v2 hdr(X-API-Version) -i canary beta&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Cookie标记&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_cookie cook(canary) -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户ID Hash（10%灰度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_by_hash req.hdr(X-User-ID),crc32,mod(100) lt 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 特定用户ID（从map读取）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.user_id) hdr(X-User-ID)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl canary_user var(req.user_id),map(/etc/haproxy/maps/canary_users.map,stable) -m str canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 流量控制ACL =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求频率限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl rate_limit_exceeded src_http_req_rate(rate_limit_table) gt 100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# VIP用户（不限速）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_vip hdr(X-User-Level) -i vip premium enterprise&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 安全处理 =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 拒绝黑名单IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny deny_status 403&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;blocked_ips&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 拒绝恶意爬虫&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny deny_status 403&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;bad_bots&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 拒绝SQL注入&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny deny_status 400&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;sql_injection&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 拒绝XSS攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny deny_status 400&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;xss_attack&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP重定向到HTTPS（非内网）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request redirect scheme https code 301 unless is_https or internal_network&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 请求头处理 =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加请求ID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Request-ID %[uuid()]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加真实IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Real-IP %[src]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除敏感头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request del-header X-Forwarded-For&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request add-header X-Forwarded-For %[src]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加灰度标记（用于追踪）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Canary-Flag&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;canary_header or canary_cookie or canary_user&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== CORS处理 =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OPTIONS预检请求直接返回&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;status 204 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hdr Access-Control-Allow-Origin&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hdr Access-Control-Allow-Methods&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GET, POST, PUT, DELETE, OPTIONS&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hdr Access-Control-Allow-Headers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type, Authorization, X-Requested-With, X-User-ID&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hdr Access-Control-Max-Age&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;86400&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_options&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ===== 路由规则（按优先级排列） =====&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查（直接返回）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;status 200 content-type&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;{\&amp;quot;status\&amp;quot;:\&amp;quot;ok\&amp;quot;,\&amp;quot;timestamp\&amp;quot;:\&amp;quot;%[date]\&amp;quot;}&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 指标接口（仅内网）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny deny_status 403&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_metrics !internal_network&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend metrics_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_metrics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend ws_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_websocket or path_websocket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 静态资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend static_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_static or path_static or is_static_file&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Admin后台（仅内网）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request deny deny_status 403&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_admin !internal_network&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend admin_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_admin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度流量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_user_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_user_service canary_header&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_user_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_user_service canary_cookie&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_user_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_user_service canary_user&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 微服务路由（正常流量）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend user_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_user_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend order_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_order_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend product_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_product_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend payment_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_payment_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend notification_service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_notification_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API版本路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_v3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api_v3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_v2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api_v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_v1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path_api_v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 域名路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend api_gateway&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend web_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;host_web&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend web_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Backend definitions&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#---------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 流量限制表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend rate_limit_table&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stick-table&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ip size 100k expire 30s store http_req_rate(10s)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend user_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-check send hdr Host localhost&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-check expect status 200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server user1 192.168.10.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server user2 192.168.10.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server user3 192.168.10.13:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户服务（灰度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend canary_user_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-check send hdr Host localhost&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-check expect status 200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server canary_user1 192.168.20.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server canary_user2 192.168.20.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 订单服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend order_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server order1 192.168.10.21:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server order2 192.168.10.22:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server order3 192.168.10.23:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 商品服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend product_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server product1 192.168.10.31:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server product2 192.168.10.32:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 支付服务（更严格的健康检查）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend payment_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 2s fall 2 rise 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server payment1 192.168.10.41:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server payment2 192.168.10.42:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 通知服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend notification_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server notification1 192.168.10.51:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server notification2 192.168.10.52:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API网关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server gateway1 192.168.10.61:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server gateway2 192.168.10.62:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API V1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v1_1 192.168.11.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v1_2 192.168.11.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API V2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v2_1 192.168.12.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v2_2 192.168.12.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# API V3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend api_v3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v3_1 192.168.13.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server api_v3_2 192.168.13.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# WebSocket服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend ws_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;source&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option http-server-close&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout server 1h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout tunnel 1h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ws1 192.168.10.71:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ws2 192.168.10.72:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 静态资源服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend static_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header Cache-Control&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;public, max-age=31536000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server static1 192.168.10.81:80 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server static2 192.168.10.82:80 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Web服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend web_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web1 192.168.10.91:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web2 192.168.10.92:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web3 192.168.10.93:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Admin服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend admin_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server admin1 192.168.10.101:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server admin2 192.168.10.102:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控指标服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend metrics_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server metrics1 192.168.10.111:9090 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 实际应用案例&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2.1 案例一：多租户SaaS平台路由&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某SaaS平台需要支持：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每个租户有独立的子域名&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大客户有独立的后端集群&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;支持租户级别的灰度发布&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/haproxy.cfg&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 多租户SaaS平台配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:443 ssl crt /etc/haproxy/certs/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从子域名提取租户ID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# tenant1.saas.company.com -&amp;gt; tenant1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.tenant_id) hdr(host),regsub(\.saas\.company\.com$,,)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从map查询租户路由信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# map文件格式：tenant_id backend_name&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.tenant_backend) var(req.tenant_id),map(/etc/haproxy/maps/tenant_routing.map,shared_pool)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 租户级别灰度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.tenant_canary) var(req.tenant_id),map(/etc/haproxy/maps/tenant_canary.map,stable)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl tenant_is_canary var(req.tenant_canary) -m str canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大客户专属后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl tenant_enterprise var(req.tenant_backend) -m str enterprise_pool_1 enterprise_pool_2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路由规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend enterprise_pool_1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.tenant_backend) -m str enterprise_pool_1 }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend enterprise_pool_2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.tenant_backend) -m str enterprise_pool_2 }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend canary_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;tenant_is_canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend shared_pool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 共享资源池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend shared_pool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server shared1 192.168.1.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server shared2 192.168.1.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server shared3 192.168.1.13:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server shared4 192.168.1.14:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大客户专属池1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend enterprise_pool_1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ent1_1 192.168.2.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ent1_2 192.168.2.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大客户专属池2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend enterprise_pool_2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ent2_1 192.168.3.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server ent2_2 192.168.3.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度测试池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend canary_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server canary1 192.168.10.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server canary2 192.168.10.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;租户路由map文件：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/maps/tenant_routing.map&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 租户ID -&amp;gt; 后端池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大客户使用专属池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;bigcorp enterprise_pool_1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;megacorp enterprise_pool_1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hugecompany enterprise_pool_2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 其他租户使用共享池（默认值已在配置中设定）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# tenant1 shared_pool &amp;nbsp;# 可以省略&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;租户灰度map文件：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/maps/tenant_canary.map&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 租户ID -&amp;gt; 灰度状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 参与灰度测试的租户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;testcorp canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;betacorp canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;democorp canary&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;动态管理租户路由：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# manage_tenant_routing.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 租户路由管理脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOCKET=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/run/haproxy/admin.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ROUTING_MAP=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/haproxy/maps/tenant_routing.map&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CANARY_MAP=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/haproxy/maps/tenant_canary.map&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加大客户专属后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;add_enterprise_tenant&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;tenant_id=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;add map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ROUTING_MAP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$tenant_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$pool&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;已添加租户&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$tenant_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;到&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$pool&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置租户灰度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;set_tenant_canary&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;tenant_id=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;status=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# canary 或 stable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$CANARY_MAP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$tenant_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$status&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;已设置租户&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$tenant_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;灰度状态为&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$status&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看租户路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;show_tenant_routing&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 租户路由配置 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;show map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ROUTING_MAP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 租户灰度配置 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;show map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$CANARY_MAP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_enterprise_tenant&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$3&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; canary)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set_tenant_canary&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$3&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; show)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; show_tenant_routing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; *)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;用法:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;add &amp;lt;tenant_id&amp;gt; &amp;lt;pool_name&amp;gt; &amp;nbsp; &amp;nbsp;# 添加大客户&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;canary &amp;lt;tenant_id&amp;gt; canary|stable &amp;nbsp;# 设置灰度&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;show &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 查看配置&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;esac&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2.2 案例二：蓝绿部署自动切换&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现蓝绿部署的自动化切换：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/haproxy/haproxy.cfg&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 蓝绿部署配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从map读取当前活跃环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.active_env) str(default),map(/etc/haproxy/maps/active_env.map,blue)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 强制指定环境（用于测试）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl force_blue hdr(X-Env) -i blue&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl force_green hdr(X-Env) -i green&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 路由规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend blue_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;force_blue&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend green_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;force_green&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend blue_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.active_env) -m str blue }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_backend green_servers&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.active_env) -m str green }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_backend blue_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 蓝环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend blue_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server blue1 192.168.1.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server blue2 192.168.1.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server blue3 192.168.1.13:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 绿环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend green_servers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; balance roundrobin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; option httpchk GET /health HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default-server inter 3s fall 3 rise 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server green1 192.168.2.11:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server green2 192.168.2.12:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server green3 192.168.2.13:8080 check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;蓝绿切换脚本：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# blue_green_switch.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 蓝绿部署切换脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOCKET=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/run/haproxy/admin.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ENV_MAP=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/haproxy/maps/active_env.map&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;get_current_env&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从map获取当前环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; current=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;show map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ENV_MAP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -z&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$current&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; current=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;blue&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$current&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;check_backend_health&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;backend=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;healthy_count=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show stat&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$backend&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;UP&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| wc -l)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$healthy_count&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;switch_env&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;target_env=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 蓝绿部署切换 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;目标环境:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$target_env&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查目标环境健康状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;检查&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${target_env}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;_servers 健康状态...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; healthy=$(check_backend_health&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${target_env}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;_servers&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$healthy&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-lt 2 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;错误：目标环境健康节点不足 (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$healthy&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt; 2)，取消切换&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;健康节点:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$healthy&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 执行切换&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;执行切换...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;set map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ENV_MAP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;default&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$target_env&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证切换结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; current=$(get_current_env)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$current&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$target_env&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;切换成功！当前活跃环境:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$current&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发送通知&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; curl -X POST&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://alert-api/webhook&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;{\&amp;quot;message\&amp;quot;:\&amp;quot;蓝绿部署切换完成，当前环境:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$target_env&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;切换失败！当前环境:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$current&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;rollback&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;current=$(get_current_env)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$current&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;blue&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; target=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;green&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; target=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;blue&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;回滚到&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$target&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;环境...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; switch_env&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$target&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;status&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 蓝绿部署状态 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前活跃环境:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(get_current_env)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;蓝环境状态:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show stat&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;blue_servers&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; awk -F&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{printf &amp;quot; &amp;nbsp;%s: %s\n&amp;quot;, $2, $18}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;绿环境状态:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show stat&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;green_servers&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; awk -F&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{printf &amp;quot; &amp;nbsp;%s: %s\n&amp;quot;, $2, $18}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主程序&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; switch)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -z&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;用法:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;switch blue|green&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch_env&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rollback)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rollback&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; status)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; *)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;蓝绿部署管理工具&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;用法:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;switch blue|green &amp;nbsp;# 切换到指定环境&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;rollback &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 回滚到另一个环境&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;status &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 查看当前状态&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;esac&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 ACL命名规范&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;好的命名让配置更易维护：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 好的命名示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl host_api hdr(host) -i api.company.com &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# host_ 前缀表示域名&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl path_user_service path_beg /api/v1/users &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# path_ 前缀表示路径&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl is_websocket hdr(Upgrade) -i websocket &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# is_ 前缀表示布尔判断&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl has_auth_header hdr(Authorization) -m found &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# has_ 前缀表示存在性检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl rate_exceeded src_http_req_rate() gt 100 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 描述性名称&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不好的命名示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl a1 hdr(host) -i api.company.com &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 太简短，不知道是什么&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl check path_beg /api/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 太宽泛&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl my_acl src 192.168.1.0/24 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# my_ 前缀没有意义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 ACL顺序优化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ACL匹配是按顺序的，把最常命中的放前面：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优化后的顺序&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 最简单的检查放前面（开销小）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl is_options method OPTIONS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;status 204&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_options&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 高频路径放前面&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_api path_beg /api/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl path_static path_beg /static/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 复杂的正则放后面（开销大）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl complex_pattern path_reg ^/api/v[0-9]+/users/[0-9]+$&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 需要读取body的检查放最后（开销最大）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl has_json_body req.body -m sub&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 使用Map文件管理动态数据&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大量动态数据不要写在配置文件里，用map文件管理：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置文件中引用map&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 黑名单IP - 从文件读取&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl blocked_ip src -f /etc/haproxy/blacklist.ips&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户路由 - 从map读取&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.user_group) hdr(X-User-ID),map(/etc/haproxy/maps/user_groups.map,default)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优点：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 可以运行时更新，无需reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 配置文件更简洁&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 便于自动化管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.4 避免重复计算&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;相同的值只提取一次：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不好的写法 - 多次提取相同的值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl is_api_v1 hdr(X-API-Version) -i v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl is_api_v2 hdr(X-API-Version) -i v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl is_api_v3 hdr(X-API-Version) -i v3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api_v1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_api_v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api_v2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_api_v2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api_v3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_api_v3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 好的写法 - 提取一次，多次使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.api_version) hdr(X-API-Version)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api_v1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.api_version) -m str v1 }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api_v2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.api_version) -m str v2 }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api_v3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{ var(req.api_version) -m str v3 }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 更好的写法 - 使用map&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.api_version) hdr(X-API-Version)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http-request&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-var(req.target_backend) var(req.api_version),map(/etc/haproxy/maps/api_version_routing.map,api_default)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend %[var(req.target_backend)]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表现&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ACL不生效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求没有按预期路由&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ACL条件写错或顺序问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用show acl命令调试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;性能下降&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应变慢&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;复杂正则或大量ACL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优化ACL顺序，使用map&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置reload失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务无法启动&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;语法错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先用haproxy -c检查&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Map更新不生效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;动态配置没生效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map文件格式错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查map文件格式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存使用高&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy占用大量内存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;stick-table或map太大&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;设置合理的大小限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灰度比例不准&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实际比例与预期不符&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Hash函数选择不当&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用crc32或其他均匀分布的hash&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 常见ACL错误&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误1：忘记-i导致大小写敏感&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl host_api hdr(host) api.company.com &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不匹配 API.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl host_api hdr(host) -i api.company.com &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正确：忽略大小写&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误2：路径匹配没考虑结尾&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl path_api path_beg /api &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 会匹配 /api 和 /api123&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl path_api path_beg /api/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正确：匹配 /api/ 开头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误3：正则没转义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl match_ip path_reg 192.168.1.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误：. 匹配任意字符&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl match_ip path_reg 192\.168\.1\.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正确：转义.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误4：Header名称大小写&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl has_auth hdr(x-auth-token) -m found &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 可能不匹配 X-Auth-Token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;acl has_auth hdr(X-Auth-Token) -m found &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推荐：使用标准大小写&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误5：逻辑组合错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_api !is_admin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 是AND关系&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use_backend api&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is_api or !is_admin &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OR需要显式写&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 故障排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.1 ACL调试命令&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# debug_acl.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ACL调试工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOCKET=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/run/haproxy/admin.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看所有ACL定义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;show_acls&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== ACL定义列表 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show acl&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试特定ACL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;test_acl&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;acl_id=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;test_value=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;测试ACL #&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$acl_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;匹配值:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$test_value&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;get acl #&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$acl_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$test_value&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看ACL内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;show_acl_content&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;acl_id=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;show acl #&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$acl_id&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时查看匹配情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;watch_acl_matches&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;实时监控ACL匹配（查看HAProxy日志）...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 需要在配置中启用详细日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# log global&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# option httplog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/haproxy.log | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;acl|backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; show_acls&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test_acl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$3&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; show)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; show_acl_content&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; watch)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; watch_acl_matches&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; *)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;ACL调试工具&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;用法:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;list &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 列出所有ACL&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;test &amp;lt;id&amp;gt; &amp;lt;value&amp;gt; # 测试ACL匹配&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;show &amp;lt;id&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 查看ACL内容&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;watch &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 实时监控匹配&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;esac&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.2 请求追踪&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在请求中添加调试信息：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在frontend中添加调试header&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;frontend http_front&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;*:80&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调试模式开关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; acl debug_mode hdr(X-Debug) -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 记录匹配的ACL到响应头（仅调试模式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Matched-Host %[hdr(host)]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;debug_mode&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Matched-Path %[path]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;debug_mode&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Backend-Name %[be_name]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;debug_mode&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http-response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-header X-Server-Name %[srv_name]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;debug_mode&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试命令：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发送带调试标记的请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;X-Debug: true&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Host: api.company.com&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;http://localhost/api/v1/users&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看响应头中的调试信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Matched-Host: api.company.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Matched-Path: /api/v1/users&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Backend-Name: user_service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Server-Name: user1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 性能监控&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.1 ACL相关指标&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# prometheus_acl_rules.yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ACL相关的监控指标&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;haproxy_acl_metrics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 后端请求分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;record:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;haproxy:backend_request_rate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rate(haproxy_backend_http_requests_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 各后端请求比例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;record:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;haproxy:backend_request_ratio&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; haproxy_backend_http_requests_total&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; / ignoring(backend) group_left&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum(haproxy_backend_http_requests_total)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 灰度流量比例告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;CanaryTrafficRatioAbnormal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum(rate(haproxy_backend_http_requests_total{backend=&amp;quot;canary_servers&amp;quot;}[5m]))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; / sum(rate(haproxy_backend_http_requests_total{backend=~&amp;quot;.*_servers&amp;quot;}[5m]))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; 0.2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;灰度流量比例异常&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;灰度流量超过20%，当前:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 备份与恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 ACL配置备份&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# backup_acl_config.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ACL配置备份脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/data/backups/haproxy_acl&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DATE=$(date +%Y%m%d_%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_PATH=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DATE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份主配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp /etc/haproxy/haproxy.cfg&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份所有map文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp -r /etc/haproxy/maps&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份黑白名单&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp /etc/haproxy/*.ips&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp /etc/haproxy/*.txt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 导出运行时ACL状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOCKET=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/run/haproxy/admin.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -S&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$SOCKET&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;show acl&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/runtime_acls.txt&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/haproxy/maps/*.map;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mapname=$(basename&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$map&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;show map&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$map&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| socat stdio&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$SOCKET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_PATH&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/runtime_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${mapname}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.txt&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 压缩&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DATE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DATE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DATE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份完成:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DATE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理旧备份（保留30天）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*.tar.gz&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-mtime +30 -delete&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ACL是HAProxy的核心功能&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：掌握ACL才能充分发挥HAProxy的能力。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;合理使用Fetch和Flag&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：了解各种取值方法和匹配标志，选择最合适的组合。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;善用Map文件&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：动态数据用map管理，支持运行时更新。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;注意性能影响&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：复杂ACL会影响性能，要优化顺序和减少重复计算。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;做好监控和调试&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：ACL匹配情况要可观测，方便排查问题。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Lua扩展&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：用Lua脚本实现更复杂的路由逻辑&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SPOE&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Stream Processing Offload Engine，把复杂逻辑卸载到外部服务&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务网格集成&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：HAProxy作为sidecar proxy的ACL配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：结合服务发现自动生成ACL配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy Configuration Manual&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy ACL Documentation&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HAProxy Runtime API&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 22px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 命令速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看ACL列表&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;show acl&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看ACL内容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;show acl #&amp;lt;id&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;添加ACL条目&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;add acl #&amp;lt;id&amp;gt; &amp;lt;value&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除ACL条目&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;del acl #&amp;lt;id&amp;gt; &amp;lt;value&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清空ACL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;clear acl #&amp;lt;id&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看Map内容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;show map &amp;lt;file&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;添加Map条目&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;add map &amp;lt;file&amp;gt; &amp;lt;key&amp;gt; &amp;lt;value&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修改Map条目&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;set map &amp;lt;file&amp;gt; &amp;lt;key&amp;gt; &amp;lt;value&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除Map条目&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;echo &amp;quot;del map &amp;lt;file&amp;gt; &amp;lt;key&amp;gt;&amp;quot; | socat stdio /run/haproxy/admin.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. 配置参数详解&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Fetch方法&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(name)&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;获取请求头&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(Host)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;URL路径&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_beg&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径前缀&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_beg /api/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_end&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径后缀&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_end .html&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_reg&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径正则&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path_reg ^/api/v[0-9]+/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;url_param(name)&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;URL参数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;url_param(id)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cook(name)&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cookie值&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cook(session_id)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端IP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;method&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP方法&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;method&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标志&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-i&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;忽略大小写&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(Host) -i example.com&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-f&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从文件读取&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;src -f /etc/haproxy/whitelist.ips&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m str&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;字符串匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path -m str /api/health&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m beg&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;前缀匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path -m beg /api/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m end&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后缀匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path -m end .json&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m sub&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;包含匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path -m sub admin&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m reg&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正则匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;path -m reg ^/api/v[0-9]+/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-m found&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存在检查&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hdr(Authorization) -m found&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;C. 术语表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;术语&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); background: none left top / auto no-repeat scroll padding-box border-box rgb(240, 240, 240); max-width: 100%; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解释&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ACL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Access Control List&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;访问控制列表，用于定义匹配条件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Fetch&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Fetch Method&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从请求中提取数据的方法&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Map&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Map File&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;键值对映射文件，支持运行时更新&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灰度发布&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Canary Release&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先让一部分用户使用新版本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;蓝绿部署&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Blue-Green Deployment&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;维护两套环境，切换流量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 248, 248); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A/B测试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A/B Testing&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将用户分组测试不同方案&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;流量分发&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Traffic Splitting&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按规则将请求分发到不同后端&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.docker.top/zb_users/upload/2026/02/202602281106164054436.png&quot; alt=&quot;image.png&quot; width=&quot;521&quot; height=&quot;179&quot; style=&quot;width: 521px; height: 179px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Thu, 26 Feb 2026 11:04:04 +0800</pubDate></item></channel></rss>